<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ionicdev.fr]]></title><description><![CDATA[ionicdev_ est un blog géré par deux développeurs qui éprouvent la nécessité de partager leurs modestes connaissances avec la communauté francophone afin de vulg]]></description><link>https://ionicdev.fr</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1683579774743/7rcWlgn5g.png</url><title>ionicdev.fr</title><link>https://ionicdev.fr</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 22:20:20 GMT</lastBuildDate><atom:link href="https://ionicdev.fr/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Etude des composants Ionic: cas du composant "ion-tabs"]]></title><description><![CDATA[Les applications mobiles modernes exigent des interfaces utilisateur fluides et intuitives pour offrir une expérience utilisateur de qualité. Ionic, avec sa vaste gamme de composants prêts à l'emploi, facilite grandement le développement d'applicatio...]]></description><link>https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-tabs</link><guid isPermaLink="true">https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-tabs</guid><category><![CDATA[Ionic Framework]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[CSS]]></category><category><![CDATA[scss]]></category><category><![CDATA[Angular]]></category><category><![CDATA[Vue.js]]></category><category><![CDATA[React]]></category><category><![CDATA[Mobile Development]]></category><dc:creator><![CDATA[Abd-Schahid]]></dc:creator><pubDate>Thu, 30 May 2024 07:12:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1715809671325/3b9cb8b5-296a-4477-b6e5-25ab59100504.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Les applications mobiles modernes exigent des interfaces utilisateur fluides et intuitives pour offrir une expérience utilisateur de qualité. <strong>Ionic</strong>, avec sa vaste gamme de composants prêts à l'emploi, facilite grandement le développement d'applications hybrides. Parmi ces composants, <code>ion-tabs</code> se distingue comme un outil puissant pour la navigation à onglets.</p>
<h3 id="heading-quest-ce-que-ion-tabs">Qu'est-ce-que <code>ion-tabs</code> ?</h3>
<p><code>ion-tabs</code> est ce composant du framework Ionic qui permet aux développeurs de créer des structures de navigation élégantes et intuitives, où les utilisateurs peuvent basculer sans effort entre les différentes sections ou fonctionnalités de l'application. Qu'il s'agisse d'une simple interface à onglets ou d'un système de navigation sophistiqué à plusieurs niveaux, <code>ion-tabs</code> offre la flexibilité et l'évolutivité nécessaires pour concrétiser votre vision.</p>
<h3 id="heading-comment-lutiliser-et-le-personnaliser">Comment l'utiliser et le personnaliser ?</h3>
<p>Le composant <code>ion-tabs</code> est subdivisé en plusieurs éléments que sont <code>ion-tab</code>, <code>ion-tab-bar</code> et <code>ion-tab-button</code></p>
<ul>
<li><p><strong>Création d'un composant</strong><code>ion-tabs</code></p>
<p>  Présentons tout d'abord chacun des éléments qui composent <code>ion-tabs</code></p>
<ul>
<li><p><code>ion-tab</code></p>
<p>  Le composant <code>ion-tab</code> (onglet) est un composant enfant de <code>ion-tabs</code>. Chaque onglet peut contenir une pile de navigation de haut niveau pour une application ou une vue unique. Une application peut comporter de nombreux onglets, tous dotés d'une navigation indépendante.</p>
</li>
<li><p><code>ion-tab-bar</code></p>
<p>  Le composant <code>ion-tab-bar</code> (barre d'onglets) est un composant de l'interface utilisateur qui contient un ensemble de boutons d'onglets. Une barre d'onglets doit être fournie à l'intérieur des onglets pour communiquer avec chacun d'entre eux.</p>
</li>
<li><p><code>ion-tab-button</code></p>
<p>  Le composant <code>ion-tab-button</code> (bouton d'onglet) est un composant d'interface utilisateur placé à l'intérieur d'une barre d'onglets. Le bouton d'onglet peut spécifier la disposition de l'icône et de l'étiquette et se connecter à une vue d'onglet.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-tabs</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-tab-bar</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"bottom"</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-tab-button</span> <span class="hljs-attr">tab</span>=<span class="hljs-string">"home"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"play-circle"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
        Listen Now
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tab-button</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-tab-button</span> <span class="hljs-attr">tab</span>=<span class="hljs-string">"radio"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"radio"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
        Radio
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tab-button</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-tab-button</span> <span class="hljs-attr">tab</span>=<span class="hljs-string">"library"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"library"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
        Library
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tab-button</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-tab-button</span> <span class="hljs-attr">tab</span>=<span class="hljs-string">"search"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"search"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
        Search
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tab-button</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tab-bar</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-tabs</span>&gt;</span>
</code></pre>
</li>
</ul>
</li>
<li><p><strong>Explorons ensemble les diverses propriétés, méthodes et évènements des composants</strong><code>ion-tabs</code><strong>,</strong><code>ion-tab</code><strong>,</strong><code>ion-tab-bar</code><strong>et</strong><code>ion-tab-button</code></p>
<ul>
<li><p><code>ion-tabs</code></p>
<p>  Les onglets peuvent être utilisés avec le routeur Ionic pour mettre en œuvre une navigation basée sur les onglets. La barre d'onglets et l'onglet actif seront automatiquement résolus en fonction de l'url. C'est le modèle le plus courant pour la navigation par onglets. Les composants ion-tabs ne disposent pas de propriétés propres à eux.</p>
<p>  Cependant ils disposent des évènements <code>ionTabsDidChange</code> qui est émis lorsque la navigation a terminé la transition vers un nouveau composant et <code>ionTabsWillChange</code> qui est émis lorsque la navigation est sur le point de passer à un nouveau composant. Quant aux méthodes, on note les méthodes <code>getSelected</code>, <code>getTab</code>, <code>select</code> qui permettent respectivement d'obtenir l'onglet actuellement sélectionné, d'obtenir un onglet spécifique à partir de la valeur de sa propriété tab ou d'une référence d'élément et de sélectionner un onglet en fonction de la valeur de sa propriété tab ou d'une référence d'élément.</p>
</li>
<li><p><code>ion-tab</code></p>
<p>  Le composant <code>ion-tab</code> (onglet) est un composant enfant de <code>ion-tabs</code> (onglets). Chaque onglet peut contenir une pile de navigation de haut niveau pour une application ou une vue unique. Une application peut comporter de nombreux onglets, tous dotés d'une navigation indépendante. Ils disposent des propriétés <code>component</code> et <code>tabs</code> qui permettent respectivement de spécifier le composant à afficher à l'intérieur de l'onglet et l'identifiant d'onglet doit qui doit être fourni pour chaque composant <code>ion-tab</code> Ce dernier est utilisé en interne pour référencer l'onglet sélectionné ou par le routeur pour passer d'un onglet à l'autre. Ils ne possèdent pas d'évènement mais disposent d'une methode <code>setActive</code> qui permet de définir le composant actif de l'onglet</p>
</li>
<li><p><code>ion-tab-bar</code></p>
<p>  Le composant <code>ion-tab-bar</code> (barre d'onglets) est un composant de l'interface utilisateur qui contient un ensemble de boutons d'onglets. Une barre d'onglets doit être fournie à l'intérieur des onglets pour communiquer avec chacun d'entre eux. Comme propriétés personnalisées de ce composant on peut noter <code>color</code>, <code>mode</code>, <code>selectTab</code>, <code>translucent</code> qui permettent respectivement de définir la couleur à utiliser dans la palette de couleurs de votre application Ionic, de définir le type de plateforme (android ou ios) à utiliser, de définir l'onglet sélectionné et de spécifier si la barre d'onglet doit etre translucide ou non. Il ne dispose par contre pas d'év</p>
</li>
<li><p><code>ion-tab-button</code></p>
<p>  Le composant <code>ion-tab-button</code> (bouton d'onglet) est un composant d'interface utilisateur placé à l'intérieur d'une barre d'onglets. Le bouton d'onglet peut spécifier la disposition de l'icône et de l'étiquette et se connecter à une vue d'onglet. Ce composant dispose de quelques propriétés que sont : <code>disabled</code>, <code>download</code>, <code>href</code>, <code>layout</code>, <code>mode</code>, <code>rel</code>, <code>selected</code>, <code>tab</code>, <code>target</code> que vous pouvez explorer plus en détail <a target="_blank" href="https://ionicframework.com/docs/api/tab-button">ici</a></p>
</li>
</ul>
</li>
<li><p><strong>Quelques styles personnalisés des composants</strong><code>ion-tab-bar</code><strong>et</strong><code>ion-tab-button</code></p>
<p>  Les composants <code>ion-tabs</code> et <code>ion-tab</code> ne disposent pas de styles personnalisés.</p>
<p>  Quant aux composants <code>ion-tab-bar</code> et <code>ion-tab-button</code>, ils sont livrés avec une variété de propriétés <code>CSS</code> que vous pouvez personnaliser pour adapter l'apparence du composant ion-tabs à vos préférences en matière de design. Vous trouverez ci-dessous, quelques-unes des propriétés <code>CSS</code> personnalisées les plus couramment utilisées :</p>
<ul>
<li><p><code>ion-tab-bar</code></p>
<ul>
<li><p><em>--background :</em> qui permet de spécifier la couleur de l'arrière-plan</p>
</li>
<li><p><em>--border</em> : qui permet de spécifier la bordure</p>
</li>
<li><p><em>--color</em> : qui permet de définir la couleur</p>
</li>
</ul>
</li>
<li><p><code>ion-tab-button</code></p>
<ul>
<li><p><em>--background</em> : pour définir la couleur de l'arrière plan</p>
</li>
<li><p><em>--background-focused</em> : pour définir la couleur de l'arrière plan lorsqu'il y a un focus</p>
</li>
<li><p><em>--background-focused-opacity</em> : pour définir l'opacité de la couleur de l'arrière plan lorsqu'il y a un focus</p>
</li>
<li><p><em>--color</em> : pour définir la couleur</p>
</li>
<li><p><em>--color-focused</em> : pour définir la couleur lorsqu'il y a un focus</p>
</li>
<li><p><em>--color-selected</em> : pour définir la couleur lorsque le composant est sélectionné</p>
<p>  Il dispose également d'autres propriétés CSS telles que <code>--padding-bottom</code>, <code>--padding-end</code>, <code>--padding-start</code>, <code>--padding-top</code> et <code>--ripple-color</code> que vous pouvez étudier <a target="_blank" href="https://ionicframework.com/docs/api/tab-button">ici</a></p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>En résumé, le composant <code>ion-tabs</code> offre une solution puissante et flexible pour créer des interfaces à onglets dans les applications hybrides. Avec ses fonctionnalités riches, sa facilité d'utilisation et ses options de personnalisation étendues, il permet aux développeurs de concevoir des expériences de navigation fluides et intuitives qui répondent aux besoins de leurs utilisateurs.</p>
<blockquote>
<p>Pour plus d'informations :</p>
<p><strong><em>👉</em></strong><a target="_blank" href="https://ionicframework.com/docs/api/tabs">Ion-tabs</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Etude des composants Ionic: cas du composant "ion-card"]]></title><description><![CDATA[Ionic se distingue comme un outil puissant pour le développement d'applications mobiles multiplateformes, et en son cœur se trouve un ensemble diversifié de composants conçus pour simplifier le développement de l'interface utilisateur. Parmi ceux-ci,...]]></description><link>https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-card</link><guid isPermaLink="true">https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-card</guid><category><![CDATA[Ionic Framework]]></category><category><![CDATA[HTML5]]></category><category><![CDATA[CSS]]></category><category><![CDATA[Angular]]></category><dc:creator><![CDATA[Abd-Schahid]]></dc:creator><pubDate>Wed, 24 Apr 2024 07:47:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1709986503602/bb86396b-9559-44d3-b737-5e7edd3eb1e7.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Ionic</strong> se distingue comme un outil puissant pour le développement d'applications mobiles multiplateformes, et en son cœur se trouve un ensemble diversifié de composants conçus pour simplifier le développement de l'interface utilisateur. Parmi ceux-ci, le composant <code>ion-card</code> apparaît comme un élément polyvalent et largement utilisé qui joue un rôle central dans la présentation de divers types de contenu au sein des applications Ionic.</p>
<h3 id="heading-quest-ce-que-ion-card">Qu'est-ce que <code>ion-card</code> ?</h3>
<p><code>ion-card</code> est un composant d'interface utilisateur conçu pour structurer et présenter l'information de manière claire et esthétique. Elle sert essentiellement de conteneur flexible pour l'affichage de divers contenus, allant du texte aux images, en passant par les listes et bien plus encore.</p>
<p><code>ion-card</code> peut être un composant unique, mais elle est souvent constituée d'un en-tête, d'un titre, d'un sous-titre et d'un contenu. Pour tenir compte de cette structure, les cartes sont divisées en plusieurs composants : <code>ion-card-header</code>, <code>ion-card-title</code>, <code>ion-card-subtitle</code> et <code>ion-card-content</code>.</p>
<p>Réputée pour sa simplicité et son adaptabilité, le composant <code>ion-card</code> est devenu un choix incontournable pour les développeurs Ionic qui cherchent à créer des interfaces utilisateur visuellement attrayantes et fonctionnelles.</p>
<h3 id="heading-comment-lutiliser-et-le-personnaliser">Comment l'utiliser et le personnaliser ?</h3>
<p>Le composant <code>ion-card</code> est subdivisé en plusieurs éléments : l'en-tête de la carte, le titre de la carte, le sous-titre de la carte et le contenu de la carte.</p>
<ul>
<li><p><strong>Création d'un composant</strong> <code>ion-card</code> <strong>basique</strong></p>
<p>  Présentons les différents sous-sections du composant <code>ion-card</code></p>
<ul>
<li><p><code>ion-card-header</code></p>
<p>  L'en-tête de la carte est un composant enfant de la carte qui doit être placé avant le contenu de la carte. Il peut contenir un titre et un sous-titre de carte.</p>
<p>  Il prend en charge les propriétés ci-après : <strong>color</strong>, <strong>mode</strong> et <strong>translucent</strong></p>
</li>
<li><p><code>ion-card-title</code> <strong>et</strong> <code>ion-card-subtitle</code></p>
<p>  Le titre et le sous-titre de la carte sont des composants enfants de la carte qui doit être placé à l'intérieur de l'en-tête de la carte. Ils prennent en charge les propriétés <strong>color</strong> et <strong>mode</strong></p>
</li>
<li><p><code>ion-card-content</code></p>
<p>  Le contenu de la carte est un composant enfant de la carte qui ajoute un rembourrage autour de son contenu. Il est recommandé de placer le texte d'une carte à l'intérieur du contenu de la carte. Il prend uniquement la propriété <code>mode</code> en charge</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-card</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-header</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-title</span>&gt;</span>Card Title<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-title</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-subtitle</span>&gt;</span>Card Subtitle<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-subtitle</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-header</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-content</span>&gt;</span>
      Here's a small text description for the card content. Nothing more, nothing less.
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-content</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card</span>&gt;</span>
</code></pre>
</li>
</ul>
</li>
<li><p><strong>Création d'un composant</strong> <code>ion-card</code> <strong>avec une image</strong></p>
<p>  Le composant <code>ion-card</code> peut contenir une image d'en-tete comme s'est illustré ci-dessous</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-card</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Silhouette of mountains"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://ionicframework.com/docs/img/demos/card-media.png"</span> /&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-header</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-title</span>&gt;</span>Card Title<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-title</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-subtitle</span>&gt;</span>Card Subtitle<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-subtitle</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-header</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-content</span>&gt;</span>
      Here's a small text description for the card content. Nothing more, nothing less.
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-content</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card</span>&gt;</span>
</code></pre>
</li>
<li><p><strong>Création d'un composant</strong> <code>ion-card</code> <strong>avec des boutons</strong></p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-card</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-header</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-title</span>&gt;</span>Card Title<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-title</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-subtitle</span>&gt;</span>Card Subtitle<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-subtitle</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-header</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-content</span>&gt;</span>
      Here's a small text description for the card content. Nothing more, nothing less.
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-content</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">fill</span>=<span class="hljs-string">"clear"</span>&gt;</span>Action 1<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">fill</span>=<span class="hljs-string">"clear"</span>&gt;</span>Action 2<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card</span>&gt;</span>
</code></pre>
</li>
<li><p><strong>Création d'un composant</strong> <code>ion-card</code> <strong>avec des listes</strong></p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-card</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-header</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-title</span>&gt;</span>Card Title<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-title</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-subtitle</span>&gt;</span>Card Subtitle<span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-subtitle</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-header</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-card-content</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-list</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-thumbnail</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"start"</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Silhouette of mountains"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://ionicframework.com/docs/img/demos/thumbnail.svg"</span> /&gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">ion-thumbnail</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-label</span>&gt;</span>Item<span class="hljs-tag">&lt;/<span class="hljs-name">ion-label</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>

        <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-thumbnail</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"start"</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Silhouette of mountains"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://ionicframework.com/docs/img/demos/thumbnail.svg"</span> /&gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">ion-thumbnail</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-label</span>&gt;</span>Item<span class="hljs-tag">&lt;/<span class="hljs-name">ion-label</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>

        <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-thumbnail</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"start"</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Silhouette of mountains"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://ionicframework.com/docs/img/demos/thumbnail.svg"</span> /&gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">ion-thumbnail</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-label</span>&gt;</span>Item<span class="hljs-tag">&lt;/<span class="hljs-name">ion-label</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>

        <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span> <span class="hljs-attr">lines</span>=<span class="hljs-string">"none"</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-thumbnail</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"start"</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">alt</span>=<span class="hljs-string">"Silhouette of mountains"</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://ionicframework.com/docs/img/demos/thumbnail.svg"</span> /&gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">ion-thumbnail</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">ion-label</span>&gt;</span>Item<span class="hljs-tag">&lt;/<span class="hljs-name">ion-label</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-list</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card-content</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-card</span>&gt;</span>
</code></pre>
</li>
<li><p><strong>Présentation des diverses propriétés du composant</strong> <code>ion-card</code></p>
<p>  Le composant <code>ion-card</code> prend en charge plusieurs propriétés qui nous permettrons d'apporter des caractéristiques spécifiques personnalisées à notre composant.</p>
<ul>
<li><p><strong><em>button</em></strong></p>
<p>  Cette propriété est de type booléen et permettra de spécifier l'affichage ou non de boutons. Si <code>true</code>, une étiquette de bouton sera affichée et la carte pourra être touchée.</p>
</li>
<li><p><strong><em>color</em></strong></p>
<p>  Cette propriété est utilisée pour spécifier la couleur d'arrière-plan de la carte. Les couleurs par défaut à utiliser dans la palette de couleurs de votre application sont les suivantes : <code>"primary"</code>, <code>"secondary"</code>, <code>"tertiary"</code>, <code>"success"</code>, <code>"warning"</code>, <code>"danger"</code>, <code>"light"</code>, <code>"medium"</code>, et <code>"dark"</code></p>
</li>
<li><p><strong><em>disabled</em></strong></p>
<p>  Cette propriété est de type booléen et permet désactiver ou pas le bouton. Si sa valeur est égale à <code>true</code>, l'utilisateur ne peut pas interagir avec la carte.</p>
</li>
<li><p><strong><em>mode</em></strong></p>
<p>  Cette propriété permet de déterminer le rendu de la carte suivant la plateforme à utiliser. Il peut être de type <code>md</code> ou <code>ios</code>.</p>
<p>  Pour rappel, le rendu des composants en général, diffère suivant la plateforme Android ou iOS. Par défaut, lors que le mode n'est pas précisé, Ionic s'en charge automatiquement afin de faire correspondre le rendu suivant la plateforme cible. Toutefois, nous pouvons aussi décider de fixer le mode d'affichage en agissant sur la propriété <code>mode</code> .</p>
<p>  Nous venons ci-dessus d'évoquer quelques propriétés les plus utilisées. On peut aussi ajouter à ces derniers : <code>rel</code>, <code>target</code>, <code>type</code>, <code>download</code>, <code>href</code>, <code>routerDirection</code>, <code>routerAnimation</code> .</p>
</li>
</ul>
</li>
<li><p><strong>Personnalisation de styles du composant</strong> <code>ion-card</code></p>
<p>  Le composant <code>ion-card</code> est livré avec une variété de propriétés <code>CSS</code> que vous pouvez personnaliser pour adapter l'apparence de la carte à vos préférences en matière de design. Vous trouverez ci-dessous, les propriétés <code>CSS</code> personnalisées les plus couramment utilisées :</p>
<ul>
<li><p><code>--background</code> : qui permet de spécifier la couleur de l'arrière-plan de la carte</p>
</li>
<li><p><code>--color</code> : qui permet de spécifier la couleur de la carte</p>
</li>
</ul>
</li>
</ul>
<p>En résumé, le composant <code>ion-card</code> est un élément essentiel dans l'arsenal d'un développeur Ionic. Il offre une solution élégante et efficace pour présenter des informations de manière structurée dans les applications mobiles hybrides. Grâce à sa flexibilité et à ses fonctionnalités riches, le composant <code>ion-card</code> contribue à améliorer l'esthétique et la convivialité des applications Ionic, offrant ainsi une expérience utilisateur optimale. Que ce soit pour afficher des articles, des produits, des profils d'utilisateurs, ou d'autres types de contenus, le ion-card demeure un choix incontournable pour les développeurs cherchant à créer des interfaces modernes et attractives.</p>
<blockquote>
<p>Pour plus d'informations :</p>
<p>👉 <a target="_blank" href="https://ionicframework.com/docs/api/card">Ion-card</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Etude des composants Ionic: cas du composant "ion-input"]]></title><description><![CDATA[Ionic est un framework de développement d'applications mobiles offrant une multitude de composants pour simplifier la création d'interfaces utilisateurs modernes et attractives. Parmi ces composants, l'un des plus fondamentaux et presque omniprésents...]]></description><link>https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-input</link><guid isPermaLink="true">https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-input</guid><category><![CDATA[ion-input]]></category><category><![CDATA[Ionic Framework]]></category><category><![CDATA[Angular]]></category><category><![CDATA[React]]></category><category><![CDATA[Vue.js]]></category><category><![CDATA[UI]]></category><category><![CDATA[UX]]></category><dc:creator><![CDATA[Abd-Schahid]]></dc:creator><pubDate>Thu, 29 Feb 2024 08:26:35 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1709195267100/a5c3d463-edc9-462c-a93a-171152e47a35.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ionic est un framework de développement d'applications mobiles offrant une multitude de composants pour simplifier la création d'interfaces utilisateurs modernes et attractives. Parmi ces composants, l'un des plus fondamentaux et presque omniprésents est le composant <code>ion-input</code> en tant qu'élément clé pour interagir avec l'utilisateur, que nous explorerons en détail et illustrerons comment l'intégrer dans vos projets Ionic pour des expériences utilisateur fluides et interactives.</p>
<h3 id="heading-quest-ce-que-ion-input">Qu'est ce que <code>ion-input</code> ?</h3>
<p>Le composant <code>ion-input</code> est conçu pour créer différents types de champs de saisie flexibles et personnalisables, ce qui permet aux développeurs de gérer facilement les entrées des utilisateurs dans les applications Ionic. Il s'intègre parfaitement à la stylisation et à la thématique d'Ionic, offrant une apparence cohérente sur différentes plateformes.</p>
<h3 id="heading-comment-lutiliser-et-le-personnaliser">Comment l'utiliser et le personnaliser ?</h3>
<p>Pour une bonne implémentation du composant <code>ion-input</code> sur une interface utilisateur, il faut l'inclure dans un composant <code>ion-item</code> afin de créer une structure de formulaire conviviale. Voici un exemple de base :</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> <span class="hljs-attr">label</span>=<span class="hljs-string">"Default input"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
<p>Dans l'exemple précédent, nous avons créé un simple composant <code>ion-input</code> basique, sans aucune personnalisation de styles et avec qu'une propriété <code>label</code> qui définit le libellé du champs de saisie.</p>
<p>Allons maintenant plus loin et utilisons les propriétés et les types pour ajouter d'autres fonctionnalités au composant.</p>
<ul>
<li><p><strong>Quelques propriétés personnalisées du composant</strong> <code>ion-input</code></p>
<ul>
<li><p><strong><em>type</em></strong></p>
<p>  Cette propriété permet de spécifier le type de contrôle à afficher. Le type par défaut est <em>text</em>. On a entre autre les types : <em>date, email, password, search, tel, time, url, month, week</em> et <em>datetime-local</em></p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> &gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>placeholder</em></strong></p>
<p>  Cette propriété permet de spécifier le texte d'instruction qui s'affiche avant que l'input n'ait une valeur. Cette propriété ne s'applique que lorsque la propriété de type est définie sur "email", "number", "password", "search", "tel", "text" ou "url", sinon elle est ignorée.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"Entrez votre adresse email ici"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>value</em></strong></p>
<p>  Cette propriété permet de spécifier la valeur par défaut du champs de saisie</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>required</em></strong></p>
<p>  Cette propriété permet de spécifier si le champs de saisie doit etre requis ou pas. Il est de type booléen.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">required</span>=<span class="hljs-string">"true"</span>
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>inputmode</em></strong></p>
<p>  Cette propriété permet de spécifier au navigateur le type de clavier à afficher. Il peut etre de type : "none", "text", "tel", "url", "email", "numeric", "decimal" ou "search".</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">inputmode</span>=<span class="hljs-string">"email"</span>
          <span class="hljs-attr">required</span>=<span class="hljs-string">"true"</span>
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>disabled</em></strong></p>
<p>  Cette propriété permet de spécifier si le champs de saisie doit etre désactivé ou pas. Il est de type booléen. Si <code>true</code> , l'utilisateur ne pourra pas saisir aucune information dans le champs de saisie.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Information"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> 
          <span class="hljs-attr">disabled</span>=<span class="hljs-string">"true"</span>    
          <span class="hljs-attr">value</span>=<span class="hljs-string">"Vous ne pouvez rien saisir ici"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
<p>  Nous venons d'énumérer ci-dessus quelques propriétés les plus utilisées. On peut aussi ajouter à ces derniers les propriétés ci-après : <code>autocapitalize</code>, <code>autocomplete</code>, <code>autocorrect</code>, <code>autofocus</code>, <code>clearInput</code>, <code>clearOnEdit color</code>, <code>size</code>, <code>shape</code>, <code>readonly</code>, <code>pattern</code>, <code>name</code>, <code>multiple</code>, <code>mode</code>, <code>minlength</code>, <code>min</code>, <code>enterkeyhint</code>, <code>labelPlacement</code>, <code>maxlength</code>, <code>max</code>, <code>legacy</code>, <code>fill</code>, <code>errorText</code>, <code>helperText</code>, <code>debounce</code> que vous pouvez étudier <a target="_blank" href="https://ionicframework.com/docs/api/input#properties">ici</a>.</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p><strong>Quelques évènements personnalisés du composant</strong> <code>ion-input</code></p>
<p>  Afin de réagir aux différentes interactions de l'utilisateur avec le composant <code>ion-input</code>, Ionic met à disposition plusieurs évènements dont <code>ionChange</code>, <code>ionFocus</code>, <code>ionInput</code> et <code>ionBlur</code>.</p>
<ul>
<li><p><strong><em>ionChange</em></strong></p>
<p>  L'événement <code>ionChange</code> est déclenché lorsque l'utilisateur modifie la valeur de l'entrée. Contrairement à l'événement <code>ionInput</code>, l'événement <code>ionChange</code> n'est déclenché que lorsque les modifications sont validées, et non lorsque l'utilisateur saisit.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          (<span class="hljs-attr">ionChange</span>)=<span class="hljs-string">"setValue()"</span>
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">inputmode</span>=<span class="hljs-string">"email"</span>
          <span class="hljs-attr">required</span>=<span class="hljs-string">"true"</span>
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>ionInput</em></strong></p>
<p>  L'événement <code>ionInput</code> est déclenché chaque fois que l'utilisateur modifie la valeur de l'entrée. Contrairement à l'événement <code>ionChange</code>, l'événement <code>ionInput</code> est déclenché pour chaque modification de la valeur de l'entrée. Cela se produit généralement à chaque frappe de touche lorsque l'utilisateur tape. Pour les éléments qui acceptent la saisie de texte (<em>type=text, type=te</em>l, etc.), l'interface est <code>InputEvent</code> ; pour les autres, l'interface est <code>Event</code>. Si l'entrée est effacée lors de la modification, le type est <code>null</code>.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          (<span class="hljs-attr">ionInput</span>)=<span class="hljs-string">"setValue()"</span>
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">inputmode</span>=<span class="hljs-string">"email"</span>
          <span class="hljs-attr">required</span>=<span class="hljs-string">"true"</span>
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>ionFocus</em></strong> et <strong><em>ionBlur</em></strong></p>
<p>  Ces événements sont déclenchés lorsque le champs de saisie perd (<code>ionBlur</code>) ou gagne (<code>ionFocus</code>) le focus.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> 
          (<span class="hljs-attr">ionInput</span>)=<span class="hljs-string">"setValue()"</span>
          (<span class="hljs-attr">ionFocus</span>)=<span class="hljs-string">"winFocus()"</span>
          (<span class="hljs-attr">ionBlur</span>)=<span class="hljs-string">"loseFocus()"</span>
          <span class="hljs-attr">label</span>=<span class="hljs-string">"Adresse Email"</span> 
          <span class="hljs-attr">type</span>=<span class="hljs-string">"email"</span> 
          <span class="hljs-attr">inputmode</span>=<span class="hljs-string">"email"</span>
          <span class="hljs-attr">required</span>=<span class="hljs-string">"true"</span>
          <span class="hljs-attr">value</span>=<span class="hljs-string">"example@gmail.com"</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
</li>
</ul>
</li>
<li><p><strong>Quelques styles personnalisés du composant</strong> <code>ion-input</code></p>
<p>  Le composant <code>ion-input</code> est livré avec une variété de propriétés <code>CSS</code> que vous pouvez personnaliser pour adapter l'apparence de l'input à vos préférences en matière de design. Vous trouverez ci-dessous, quelques-unes des propriétés CSS personnalisées les plus couramment utilisées :</p>
<ul>
<li><p><code>--background</code> : qui permet de spécifier la couleur de l'arrière-plan de l'input</p>
</li>
<li><p><code>--border-color</code> : qui permet de spécifier la couleur de la bordure en dessous de l'input lorsqu'on utilise les propriétés <em>helperText</em>, <em>errorText</em> ou <em>counter</em></p>
</li>
<li><p><code>--border-style</code> : qui permet de spécifier le style de la bordure en dessous de l'input lorsqu'on utilise les propriétés <em>helperText</em>, <em>errorText</em> ou <em>counter</em></p>
</li>
<li><p><code>--color</code> : qui permet de spécifier la couleur du texte de l'input</p>
</li>
<li><p><code>--highlight-color-focused</code> : qui permet de spécifier la couleur de la bordure inférieure de l'input lorsqu'il a le focus de l'utilisateur</p>
</li>
<li><p><code>--highlight-color-invalid</code> : qui permet de spécifier la couleur de la bordure inférieure de l'input lorsque la donnée entrée par l'utilisateur est invalide</p>
</li>
<li><p><code>--highlight-color-valid</code> : qui permet de spécifier la couleur de la bordure inférieure de l'input lorsque la donnée entrée par l'utilisateur est valide</p>
</li>
<li><p><code>--placeholder-color</code> : qui permet de spécifier la couleur du placeholder de l'input</p>
</li>
<li><p><code>--padding-bottom</code> : qui permet de spécifier la marge intérieur basse de l'input</p>
</li>
<li><p><code>--padding-end</code> : qui permet de spécifier la marge intérieur au bout de l'input</p>
</li>
<li><p><code>--padding-start</code> : qui permet de spécifier la marge intérieur au début de l'input</p>
</li>
<li><p><code>--padding-top</code> : qui permet de spécifier la marge intérieur haute de l'input</p>
<pre><code class="lang-xml">  ion-input {
      --background: #93e9be;
      --highlight-color-valid: #9ce0be;
      --highlight-color-invalid: #88f4be;
      --highlight-color-focused: #88f4be;

      --color: black;
      --placeholder-text: #93e9be

      --border-radius: 0;
      --border-color: #000;
      --border-style: solid;
      --border-width: 1px;

      --padding-top: 10px;
      --padding-bottom: 10px;
    }
</code></pre>
<p>  Ionic propose également d'autres propriétés CSS telles que <code>--placeholder-opacity</code>, <code>--placeholder-font-weight</code>, <code>--placeholder-font-style</code>, <code>--border-radius</code> que vous pouvez étudier <a target="_blank" href="https://ionicframework.com/docs/api/input#css-custom-properties-1">ici</a></p>
</li>
</ul>
</li>
<li><p><strong>Lecture et écriture avec le composant</strong> <code>ion-input</code></p>
<p>  Selon le framework <em>JavaScript</em> utilisé, les méthodes de lecture et d'écriture sur un champ de saisie s'applique parfaitement au composant <code>ion-input</code> .</p>
<p>  En prenant l'exemple avec le framework Angular, voici comment utiliser la directive <code>ngModel</code> :</p>
<pre><code class="lang-javascript">  <span class="hljs-comment">// app.module.ts</span>

  <span class="hljs-keyword">import</span> { NgModule } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;
  <span class="hljs-keyword">import</span> { FormsModule } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/forms'</span>;
  <span class="hljs-keyword">import</span> { IonicModule } <span class="hljs-keyword">from</span> <span class="hljs-string">'@ionic/angular'</span>;
  <span class="hljs-keyword">import</span> { MyApp } <span class="hljs-keyword">from</span> <span class="hljs-string">'./app.component'</span>;

  @NgModule({
    <span class="hljs-attr">declarations</span>: [MyApp],
    <span class="hljs-attr">imports</span>: [IonicModule.forRoot(), FormsModule],
    <span class="hljs-attr">bootstrap</span>: [MyApp],
  })
  <span class="hljs-keyword">export</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyAppModule</span> </span>{}
</code></pre>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-item</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-label</span> <span class="hljs-attr">position</span>=<span class="hljs-string">"floating"</span>&gt;</span>Username<span class="hljs-tag">&lt;/<span class="hljs-name">ion-label</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> [(<span class="hljs-attr">ngModel</span>)]=<span class="hljs-string">"username"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-input</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-item</span>&gt;</span>
</code></pre>
<pre><code class="lang-javascript">  <span class="hljs-keyword">import</span> { Component } <span class="hljs-keyword">from</span> <span class="hljs-string">'@angular/core'</span>;

  @Component({
    <span class="hljs-attr">selector</span>: <span class="hljs-string">'app-root'</span>,
    <span class="hljs-attr">templateUrl</span>: <span class="hljs-string">'app.component.html'</span>,
    <span class="hljs-attr">styleUrls</span>: [<span class="hljs-string">'app.component.scss'</span>],
  })
  <span class="hljs-keyword">export</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AppComponent</span> </span>{
    <span class="hljs-attr">username</span>: string = <span class="hljs-string">''</span>; <span class="hljs-comment">// Initialize the variable</span>
  }
</code></pre>
</li>
</ul>
<p>En résumé, le composant <code>ion-input</code> répond parfaitement au besoin lié à la saisie utilisateur dans les applications mobiles. Grâce à des fonctionnalités telles que les différents types d'entrée, la validation, la thématisation et l'intégration facile avec la lecture et l'écriture, les développeurs peuvent créer des formulaires transparents et conviviaux.</p>
<blockquote>
<p>Pour plus d'informations :</p>
<p><strong><em>👉</em></strong><a target="_blank" href="https://ionicframework.com/docs/api/input">Ion-input</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Etude des composants Ionic: cas du composant "ion-button"]]></title><description><![CDATA[Ionic est un framework de développement d'applications mobiles offrant une multitude de composants pour simplifier la création d'interfaces utilisateurs modernes et attractives. Parmi ces composants, l'un des plus fondamentaux et omniprésents est le ...]]></description><link>https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-button</link><guid isPermaLink="true">https://ionicdev.fr/etude-des-composants-ionic-cas-du-composant-ion-button</guid><category><![CDATA[Ionic Framework]]></category><category><![CDATA[ionic framework]]></category><category><![CDATA[button]]></category><category><![CDATA[Angular]]></category><category><![CDATA[Vue.js]]></category><category><![CDATA[React]]></category><category><![CDATA[Svelte]]></category><dc:creator><![CDATA[Abd-Schahid]]></dc:creator><pubDate>Thu, 08 Feb 2024 09:35:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1707079255595/611cff5b-b0b4-468a-90fe-7c6003d2a86f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ionic est un framework de développement d'applications mobiles offrant une multitude de composants pour simplifier la création d'interfaces utilisateurs modernes et attractives. Parmi ces composants, l'un des plus fondamentaux et omniprésents est le composant <code>ion-button</code> en tant qu'élément essentiel pour déclencher des actions, que nous explorerons en détail et illustrerons comment l'intégrer dans vos projets Ionic pour des expériences utilisateur fluides et interactives.</p>
<h3 id="heading-quest-ce-que-ion-button">Qu'est ce que <code>ion-button</code> ?</h3>
<p>Le composant <code>ion-button</code> est essentiellement un bouton interactif. Il s'agit d'un élément clé pour déclencher des actions dans une application, que ce soit la navigation vers une autre page, la soumission d'un formulaire ou toute autre fonctionnalité interactive. Grâce à ses nombreuses fonctionnalités et options de personnalisation, <code>ion-button</code> offre une flexibilité maximale pour répondre aux besoins spécifiques de conception de votre application.</p>
<h3 id="heading-comment-lutiliser-et-le-personnaliser">Comment l'utiliser et le personnaliser ?</h3>
<p>Le composant i<code>on-button</code> est conçu pour être simple à utiliser, mais il offre également de puissantes fonctionnalités pour la personnalisation.</p>
<ul>
<li>Création d'un simple composant <code>ion-button</code></li>
</ul>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span>&gt;</span>Default<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
<p>Ici, nous avons créé un simple bouton très basique, sans aucune personnalisation de styles, ni de propriétés.</p>
<p>A présent, allons un peu plus loin avec l'utilisation des propriétés qui permettent d'ajouter des particularités supplémentaires au composant.</p>
<ul>
<li><p>Présentation des diverses propriétés du composant <code>ion-button</code></p>
<ul>
<li><p><strong><em>expand</em></strong></p>
<p>  Cette propriété vous permet de spécifier la largeur du bouton. Par défaut, les boutons ont un affichage <code>inline-block</code>, mais en définissant cette propriété, le bouton devient un élément pleinement large avec un affichage <code>block</code>.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">expand</span>=<span class="hljs-string">"block"</span>&gt;</span>Block<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span> 
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">expand</span>=<span class="hljs-string">"full"</span>&gt;</span>Full<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
<p>  La différence entre <code>expand="block"</code> et <code>expand="full"</code> se situe au niveau du rendu. En effet, <code>expand="block"</code> renvoie un <em>bouton légèrement arrondi aux extrémités</em> tandis que <code>expand="full"</code> renvoie un <em>bouton totalement rectangulaire</em>.</p>
</li>
<li><p><strong><em>shape</em></strong></p>
<p>  Cette propriété vous permet de spécifier la forme du bouton. Par défaut, les boutons sont rectangulaires avec des extrémités arrondies, mais en définissant cette propriété sur <code>"round"</code>, le bouton devient un élément arrondi.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">shape</span>=<span class="hljs-string">"round"</span>&gt;</span>Round<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>fill</em></strong></p>
<p>  Cette propriété détermine la couleur de l'arrière-plan et de la bordure du bouton. Par défaut, les boutons ont un arrière-plan uni (non transparent). Toutefois, si ces boutons se trouvent dans une barre d'outils, leur arrière-plan devient transparent.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">fill</span>=<span class="hljs-string">"clear"</span>&gt;</span>Clear<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">fill</span>=<span class="hljs-string">"outline"</span>&gt;</span>Outline<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">fill</span>=<span class="hljs-string">"solid"</span>&gt;</span>Solid<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>size</em></strong></p>
<p>  Cette propriété spécifie la taille du bouton. La définition de cette propriété modifie la hauteur du bouton ainsi que l'espacement qui se trouve à l'intérieur de ce dernier.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"small"</span>&gt;</span>Small<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"default"</span>&gt;</span>Default<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">size</span>=<span class="hljs-string">"large"</span>&gt;</span>Large<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>color</em></strong></p>
<p>  Cette propriété est utilisée pour spécifier la couleur d'arrière-plan, qui influence la couleur du texte du bouton. Les couleurs par défaut à utiliser dans la palette de couleurs de votre application sont les suivantes : <code>"primary"</code>, <code>"secondary"</code>, <code>"tertiary"</code>, <code>"success"</code>, <code>"warning"</code>, <code>"danger"</code>, <code>"light"</code>, <code>"medium"</code>, et <code>"dark"</code> .</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"primary"</span>&gt;</span>Primary<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"secondary"</span>&gt;</span>Secondary<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"tertiary"</span>&gt;</span>Tertiary<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"success"</span>&gt;</span>Success<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"warning"</span>&gt;</span>Warning<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"danger"</span>&gt;</span>Danger<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"light"</span>&gt;</span>Light<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"medium"</span>&gt;</span>Medium<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">color</span>=<span class="hljs-string">"dark"</span>&gt;</span>Dark<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
<p>  Comme vous l'aurez remarqué, la propriété <code>color</code> dépend de la configuration que vous aurez eu à faire lors de la personnalisation du thème de votre projet.</p>
</li>
<li><p><strong><em>disabled</em></strong></p>
<p>  Cette propriété est de type booléen et permet désactiver ou pas le bouton. Si sa valeur est égale à <code>true</code>, l'utilisateur ne peut pas interagir avec le bouton.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">disabled</span>=<span class="hljs-string">"true"</span>&gt;</span>Disabled<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>slot</em></strong></p>
<p>  Cette propriété permet de définir l'affichage du composant <code>ion-icon</code> (composant permettant de définir une icône) lorsque sa value est égale à <code>icon-only</code>. Il permet également de définir l'ordre dans lequel l'icône sera affichée par rapport au texte écrit sur le bouton, c'est-à-dire soit au début du texte pour <code>start</code>, soit à la fin du texte pour <code>end</code>.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"start"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"star"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
    Left Icon
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>

  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span>&gt;</span>
    Right Icon
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"end"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"star"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>

  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ion-icon</span> <span class="hljs-attr">slot</span>=<span class="hljs-string">"icon-only"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"star"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ion-icon</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
<li><p><strong><em>mode</em></strong></p>
<p>  Cette propriété permet de déterminer le rendu du bouton suivant la plateforme à utiliser. Il peut être de type <code>md</code> ou <code>ios</code>.</p>
<p>  Pour rappel, le rendu des composants en général, diffère suivant la plateforme Android ou iOS. Par défaut, lors que le mode n'est pas précisé, Ionic s'en charge automatiquement afin de faire correspondre le rendu suivant la plateforme cible. Toutefois, nous pouvons aussi décider de fixer le mode d'affichage en agissant sur la propriété <code>mode</code> .</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">mode</span>=<span class="hljs-string">"md"</span>&gt;</span>Android platform<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> <span class="hljs-attr">mode</span>=<span class="hljs-string">"ios"</span>&gt;</span>Ios platform<span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
<p>  Nous venons ci-dessus d'évoquer quelques propriétés les plus utilisées. On peut aussi ajouter à ces derniers : <code>strong</code>, <code>target</code>, <code>type</code>, <code>event</code>, <code>form</code>, <code>download</code>, <code>href</code>, <code>routerDirection</code>, <code>routerAnimation</code> .</p>
</li>
</ul>
</li>
</ul>
<ul>
<li><p>Personnalisation de styles du composant <code>ion-button</code></p>
<p>  Le composant <code>ion-button</code> de Ionic est livré avec une variété de propriétés <code>CSS</code> que vous pouvez personnaliser pour adapter l'apparence du bouton à vos préférences en matière de design. Vous trouverez ci-dessous, quelques-unes des propriétés <code>CSS</code> personnalisées les plus couramment utilisées :</p>
<ul>
<li><p><code>--background</code> : qui permet de spécifier la couleur de l'arrière-plan du bouton</p>
</li>
<li><p><code>--background-activated</code> : qui permet de spécifier la couleur de l'arrière-plan du bouton lorque l'utilisateur effectue un clique</p>
</li>
<li><p><code>--background-hover</code> : qui perment de spécifier la couleur de l'arrière-plan du bouton lorque l'utilisateur survole ce dernier</p>
</li>
<li><p><code>--border-color</code> : qui permet de spécifier la couleur de la bordure du bouton</p>
</li>
<li><p><code>--border-radius</code> : qui permet de spécifier les arrondis de la bordure du bouton</p>
</li>
<li><p><code>--border-style</code> : qui permet de spécifier le style de la bordure du bouton</p>
</li>
<li><p><code>--color</code> : qui permet de spécifier la couleur du texte du bouton</p>
</li>
<li><p><code>--color-activated</code> : qui permet de spécifier la couleur du texte lorsque l'utilisateur effectue un clique</p>
</li>
<li><p><code>--color-hover</code> : qui permet de spécifier la couleur du texte lorsque l'utilisateur effectue un survol</p>
</li>
<li><p><code>--opacity</code> : qui permet de spécifier l'opacité du bouton</p>
</li>
<li><p><code>--padding-bottom</code> : qui permet de spécifier la marge intérieur basse du bouton</p>
</li>
<li><p><code>--padding-end</code> : qui permet de spécifier la marge intérieur au bout du bouton</p>
</li>
<li><p><code>--padding-start</code> : qui permet de spécifier la marge intérieur au début du bouton</p>
</li>
<li><p><code>--padding-top</code> : qui permet de spécifier la ùarge intérieur haute du bouton</p>
<pre><code class="lang-scss">  ion-<span class="hljs-selector-tag">button</span> {
    --<span class="hljs-attribute">background</span>: <span class="hljs-number">#93e9be</span>;
    --<span class="hljs-attribute">background</span>-hover: <span class="hljs-number">#9ce0be</span>;
    --<span class="hljs-attribute">background</span>-activated: <span class="hljs-number">#88f4be</span>;
    --<span class="hljs-attribute">background</span>-focused: <span class="hljs-number">#88f4be</span>;

    --<span class="hljs-attribute">color</span>: blue;

    --<span class="hljs-attribute">border-radius</span>: <span class="hljs-number">0</span>;
    --<span class="hljs-attribute">border-color</span>: <span class="hljs-number">#000</span>;
    --<span class="hljs-attribute">border-style</span>: solid;
    --<span class="hljs-attribute">border-width</span>: <span class="hljs-number">1px</span>;

    --<span class="hljs-attribute">box-shadow</span>: <span class="hljs-number">0</span> <span class="hljs-number">2px</span> <span class="hljs-number">6px</span> <span class="hljs-number">0</span> rgb(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0.25</span>);

    --ripple-<span class="hljs-attribute">color</span>: deeppink;

    --<span class="hljs-attribute">padding-top</span>: <span class="hljs-number">10px</span>;
    --<span class="hljs-attribute">padding-bottom</span>: <span class="hljs-number">10px</span>;
  }
</code></pre>
</li>
</ul>
</li>
</ul>
<p>    Il existe d'autres propriétés <code>CSS</code> telles que <code>--ripple-color</code>, <code>--transition</code>, <code>--box-shadow</code>, <code>--border-width</code>, <code>--background-activated-opacity</code>, <code>--background-focused-opacity</code> <em>dont je vous laisse le soin de décortiquer en détail.</em></p>
<ul>
<li><p>Interagir avec le composant <strong>ion-button</strong> à travers ces évènements personnalisés</p>
<p>  Pour gérer les interactions avec le composant <code>ion-button</code> , Ionic met a disposition les évènements que sont <em>click</em>, <em>ionFocus</em> et <em>ionBlur.</em></p>
<ul>
<li><p><strong><em>click</em></strong></p>
<p>  L'événement <code>click</code> est l'un des événements les plus couramment utilisés avec <code>ion-button</code>. Il est déclenché lorsque le bouton est cliqué, ce qui vous permet de définir une fonction ou une action à exécuter. Voyons ensemble le cas avec l'utilisation du framework Angular :</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> (<span class="hljs-attr">click</span>)=<span class="hljs-string">"handleButtonClick()"</span>&gt;</span>
    Click me!
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
<p>  <strong><em>Il est à noter que suivant le framework JavaScript utilisé pour gérer votre logique métier, l'évènement click doit correspondre à la syntaxe de votre framework.</em></strong></p>
</li>
<li><p><strong><em>ionFocus</em></strong> et <strong><em>ionBlur</em></strong></p>
<p>  Ces événements sont déclenchés lorsque le bouton perd (<code>ionBlur</code>) ou gagne (<code>ionFocus</code>) le focus. Ils sont utiles pour mettre en œuvre des actions basées sur l'état du bouton.</p>
<pre><code class="lang-xml">  <span class="hljs-tag">&lt;<span class="hljs-name">ion-button</span> (<span class="hljs-attr">ionBlur</span>)=<span class="hljs-string">"handleBlur()"</span> (<span class="hljs-attr">ionFocus</span>)=<span class="hljs-string">"handleFocus()"</span>&gt;</span>
    Focus me!
  <span class="hljs-tag">&lt;/<span class="hljs-name">ion-button</span>&gt;</span>
</code></pre>
</li>
</ul>
</li>
</ul>
<p>En résumé, le composant <code>ion-button</code> est l'un des composants incontournables dans l'utilisation du framework Ionic. Grâce à ces fonctionnalités de personnalisation avancées, vous pouvez facilement adapter chaque bouton à vos besoins spécifiques.</p>
<blockquote>
<p>Pour plus d'informations :</p>
<p>👉 <a target="_blank" href="https://ionicframework.com/docs/api/button">Ion-button</a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Quelles sont les possibilités de conceptions applicatives que peut offrir le framework Ionic ?]]></title><description><![CDATA[L'écosystème du développement d'applications mobiles a connu une transformation significative au fil des années avec l'émergence de nombreux frameworks facilitant la création d'applications performantes et esthétiques. Parmi ces frameworks, Ionic se ...]]></description><link>https://ionicdev.fr/quelles-sont-les-possibilites-de-conceptions-applicatives-que-peut-offrir-le-framework-ionic</link><guid isPermaLink="true">https://ionicdev.fr/quelles-sont-les-possibilites-de-conceptions-applicatives-que-peut-offrir-le-framework-ionic</guid><category><![CDATA[Ionic Framework]]></category><category><![CDATA[Cordova]]></category><category><![CDATA[capacitor]]></category><dc:creator><![CDATA[Abd-Schahid]]></dc:creator><pubDate>Thu, 25 Jan 2024 08:37:28 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1706605181458/808812cc-5045-48f8-8ad2-60f4c4466d72.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>L'écosystème du développement d'applications mobiles a connu une transformation significative au fil des années avec l'émergence de nombreux frameworks facilitant la création d'applications performantes et esthétiques. Parmi ces frameworks, <strong>Ionic</strong> se distingue par sa polyvalence et ses fonctionnalités.</p>
<p>Ionic, actuellement en version 7, est un framework d'interface utilisateur open-source qui permet de développer des applications mobiles multiplateformes en utilisant les technologies web HTML, CSS et JavaScript. Il offre également des intégrations avec des frameworks populaires comme Angular, React et Vue.</p>
<blockquote>
<p>Quels sont les avantages liés à l'utilisation de Ionic ?</p>
</blockquote>
<ul>
<li><strong>Une seule base de code</strong></li>
</ul>
<p>Une des forces majeures d'<strong>Ionic</strong> réside dans sa capacité à créer des applications multiplateformes. Cela signifie que le code source d'une application <strong>Ionic</strong> peut être utilisé pour créer des applications pour <strong><em>iOS</em></strong>, <strong><em>Android</em></strong> et <strong><em>web</em></strong>, ce qui simplifie le processus de développement et de maintenance.</p>
<p><strong>Ionic</strong> est conçu pour fonctionner sur tous les appareils et plateformes mobiles actuels. Avec des composants prêts à l'emploi, une typographie et un thème de base assez fluide (toutefois extensible) qui s'adapte à chaque plateforme, vous construirez avec style.</p>
<ul>
<li><strong>Une bibliothèque de composants prêts à l'emploi</strong></li>
</ul>
<p><strong>Ionic</strong> propose une bibliothèque complète de composants d'interface utilisateur prêts à l'emploi. Ces composants, tels que des boutons, des listes, des modèles, des onglets, etc., facilitent la création d'interfaces utilisateur cohérentes et attrayantes.</p>
<ul>
<li><strong>Accès aux fonctionnalités natives</strong></li>
</ul>
<p><strong>Ionic</strong> utilise des outils tels que <em>Cordova</em> ou <em>Capacitor</em> pour permettre aux applications Ionic d'accéder aux fonctionnalités natives des appareils mobiles. Cela inclut l'accès à la caméra, aux contacts, à la géolocalisation, et d'autres fonctionnalités matérielles.</p>
<ul>
<li><strong>Déploiement multiplateformes (cross-platform)</strong></li>
</ul>
<p>Utilisant <strong><em>Cordova</em></strong> ou <strong><em>Capacitor</em></strong>, <strong>Ionic</strong> permet de déployer des applications fonctionnant sur plusieurs plateformes, telles que <em>iOS</em> natif, <em>Android</em> et le web en tant que Progressive Web App, le tout avec une seule base de code.</p>
<ul>
<li><strong>Compatibilités avec les frameworks Web</strong></li>
</ul>
<p><strong>Ionic</strong> est construit autour de l'écosystèmes des frameworks JavaScript. Cela signifie que les développeurs bénéficient des fonctionnalités de leur framework préféré (<strong><em>Angular, React, Vue, etc</em></strong>) pour le développement d'applications web, en plus des capacités spécifiques à <strong>Ionic</strong> pour les applications mobiles. Toutefois, il est à noter que les versions précédentes de <strong>Ionic</strong> étaient étroitement liées à <strong><em>Angular</em></strong>. La version 4.x du framework a été repensée pour fonctionner comme une bibliothèque de composants web autonome, avec des intégrations pour les autres frameworks JavaScript, comme <strong><em>React</em></strong> et <strong><em>Vue</em></strong>.</p>
<ul>
<li><strong>Personnalisation et Thématisation</strong></li>
</ul>
<p><strong>Ionic</strong> permet une personnalisation approfondie de l'apparence des applications. Les développeurs peuvent ajuster les styles prédéfinis, utiliser des thèmes personnalisés, et tirer parti de <strong><em>Sass</em></strong> pour une gestion plus avancée des styles.</p>
<ul>
<li><strong>La CLI (Command Line Interface)</strong></li>
</ul>
<p>L'interface de ligne de commande (<strong><em>CLI</em></strong>) de <strong>Ionic</strong> est un outil qui permet d'échafauder rapidement des applications Ionic et qui fournit un certain nombre de commandes utiles aux développeurs Ionic. Outre l'installation et la mise à jour de Ionic, l'interface de ligne de commande comprend un serveur de développement intégré, des outils de construction et de débogage, et bien d'autres choses encore.</p>
<p>Pour installer la <strong><em>CLI d'Ionic</em></strong> :</p>
<pre><code class="lang-bash">npm install -g @ionic/cli
</code></pre>
<p>En résumé, <strong>Ionic</strong> est un framework puissant et polyvalent qui permet aux développeurs de créer des applications mobiles modernes, interactives et performantes en utilisant des technologies web standard. Il est particulièrement adapté pour les projets nécessitant une approche de développement multiplateforme.</p>
<blockquote>
<p>Pour plus d'informations :</p>
<p>👉 <a target="_blank" href="https://ionicframework.com/docs">Ionic</a></p>
</blockquote>
]]></content:encoded></item></channel></rss>