recherche
Maisoninterface Webjs tutorielCréer une application de conversion d'unités en Angular avec Tailwind CSS

Building a Unit Converter App in Angular with Tailwind CSS

Les convertisseurs d'unités sont des outils pratiques pour convertir des mesures entre différentes unités, ce qui facilite le travail avec différents systèmes de mesure. Dans ce didacticiel, nous allons créer une application de conversion d'unités dans Angular qui permet aux utilisateurs de convertir des valeurs entre différentes unités de longueur, telles que les mètres, les kilomètres, les centimètres et les millimètres. Nous implémenterons la logique de conversion et utiliserons Tailwind CSS pour le style afin de créer une interface visuellement attrayante et conviviale.

Table des matières

  • Présentation
  • Mise en place du projet
  • Mise en œuvre de la logique de conversion
  • Style avec Tailwind CSS
  • Exécuter l'application
  • Conclusion
  • Explorer le code

Présentation

Une application de conversion d'unités fournit un outil utile pour convertir des mesures entre différentes unités, facilitant ainsi le travail avec différents systèmes de mesure. Dans ce projet, nous nous concentrerons sur les unités de longueur, permettant aux utilisateurs de convertir des valeurs entre mètres, kilomètres, centimètres et millimètres. L'application comportera une interface simple et intuitive qui permettra aux utilisateurs de saisir une valeur, de sélectionner les unités à convertir et de visualiser instantanément le résultat converti.

Mise en place du projet

Commencez par créer un nouveau projet Angular. Si vous n'avez pas encore configuré Angular CLI, installez-le à l'aide de la commande :

npm install -g @angular/cli

Ensuite, créez un nouveau projet Angular :

ng new unit-converter-app
cd unit-converter-app

Une fois le projet configuré, installez Tailwind CSS :

npm install -D tailwindcss
npx tailwindcss init

Configurez Tailwind CSS en mettant à jour le fichier tailwind.config.js :

module.exports = {
  content: ["./src/**/*.{html,ts}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

Incluez la base, les composants et les utilitaires de Tailwind dans votre src/styles.css :

@tailwind base;
@tailwind components;
@tailwind utilities;

Mise en œuvre de la logique de conversion

Dans app.component.ts, définissez la logique de conversion entre les unités :

import { Component, inject, signal } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { Meta } from '@angular/platform-browser';

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [RouterOutlet, FormsModule],
  templateUrl: './app.component.html',
  styleUrl: './app.component.scss',
})
export class AppComponent {
  units = signal(['Meter', 'Kilometer', 'Centimeter', 'Millimeter']);
  inputValue = signal(0);
  fromUnit = signal('Meter');
  toUnit = signal('Meter');
  result = signal<number null>(null);
  errorMessage = signal<string null>(null);

  meta = inject(Meta);

  constructor() {
    this.meta.addTag({
      name: 'viewport',
      content: 'width=device-width, initial-scale=1',
    });
    this.meta.addTag({
      rel: 'icon',
      type: 'image/x-icon',
      href: 'favicon.ico',
    });
    this.meta.addTag({
      rel: 'canonical',
      href: 'https://unit-converter-app-manthanank.vercel.app/',
    });
    this.meta.addTag({ property: 'og:title', content: 'Unit Converter App' });
    this.meta.addTag({ name: 'author', content: 'Manthan Ankolekar' });
    this.meta.addTag({ name: 'keywords', content: 'angular' });
    this.meta.addTag({ name: 'robots', content: 'index, follow' });
    this.meta.addTag({
      property: 'og:description',
      content:
        'A simple unit converter app built using Angular that converts units like meter, kilometer, and more.',
    });
    this.meta.addTag({
      property: 'og:image',
      content: 'https://unit-converter-app-manthanank.vercel.app/image.jpg',
    });
    this.meta.addTag({
      property: 'og:url',
      content: 'https://unit-converter-app-manthanank.vercel.app/',
    });
  }

  convert() {
    if (!this.validateInput()) {
      return;
    }

    const conversionRates: { [key: string]: number } = {
      Meter: 1,
      Kilometer: 0.001,
      Centimeter: 100,
      Millimeter: 1000,
    };

    const fromRate = conversionRates[this.fromUnit()];
    const toRate = conversionRates[this.toUnit()];

    this.result.set((this.inputValue() * fromRate) / toRate);
  }

  reset() {
    this.inputValue.set(0);
    this.fromUnit.set('Meter');
    this.toUnit.set('Meter');
    this.result.set(null);
    this.errorMessage.set(null);
  }

  swapUnits() {
    const temp = this.fromUnit();
    this.fromUnit.set(this.toUnit());
    this.toUnit.set(temp);
  }

  validateInput(): boolean {
    if (this.inputValue() 



<p>Ce code configure la logique de conversion de base, gérant les entrées utilisateur pour convertir les unités de longueur.</p>

<h3>
  
  
  <strong>Style avec Tailwind CSS</strong>
</h3>

<p>Maintenant, concevons l'interface en utilisant Tailwind CSS dans app.component.html :<br>
</p>

<pre class="brush:php;toolbar:false"><div class="min-h-screen flex items-center justify-center bg-gray-100">
  <div class="p-6 max-w-3xl mx-auto bg-white rounded-xl shadow-md space-y-4">
    <h2 id="Unit-Converter">Unit Converter</h2>

    <div class="space-y-2">
      <label for="inputValue" class="block text-sm font-medium text-gray-700">Input Value:</label>
      <input type="number" id="inputValue" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
    </div>

    <div class="space-y-2">
      <label for="fromUnit" class="block text-sm font-medium text-gray-700">From:</label>
      <select id="fromUnit" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
        @for (unit of units(); track $index) {
        <option>{{ unit }}</option>
        }
      </select>
    </div>

    <div class="space-y-2">
      <label for="toUnit" class="block text-sm font-medium text-gray-700">To:</label>
      <select id="toUnit" class="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm">
        @for (unit of units(); track $index) {
        @if (unit !== fromUnit()) {
        <option>{{ unit }}</option>
        }
        }
      </select>
    </div>

    <div class="flex space-x-2">
      <button class="w-full bg-indigo-600 text-white py-2 px-4 rounded-md shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">Convert</button>
      <button class="w-full bg-gray-600 text-white py-2 px-4 rounded-md shadow-sm hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500">Reset</button>
      <button class="w-full bg-yellow-600 text-white py-2 px-4 rounded-md shadow-sm hover:bg-yellow-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-yellow-500">Swap</button>
    </div>

    @if (errorMessage()){
    <div class="text-red-500 text-center mt-4">{{ errorMessage() }}</div>
    }

    @if (result() !== null) {
    <h3 id="Result-result">Result: {{result()}}</h3>
    }
  </div>
</div>

La conception utilise les classes CSS Tailwind pour créer une interface utilisateur simple et réactive qui s'adapte parfaitement à différents appareils.

Exécuter l'application

Exécutez votre application avec :

ng serve

Accédez à http://localhost:4200/ pour voir votre application Unit Converter en action. Vous pouvez saisir une valeur, sélectionner des unités dans les menus déroulants et cliquer sur « Convertir » pour voir le résultat instantanément.

Conclusion

Félicitations ! Vous avez créé avec succès une application de conversion d'unités dans Angular en utilisant Tailwind CSS pour le style. Ce projet montre comment créer une application Web fonctionnelle et visuellement attrayante qui fournit un outil précieux pour convertir des unités de longueur. Vous pouvez améliorer davantage l'application en ajoutant plus d'options d'unité, en améliorant la conception ou en implémentant des fonctionnalités supplémentaires.

Bon codage !


N'hésitez pas à personnaliser le contenu selon vos besoins. Faites-moi savoir si vous avez des questions ou si vous avez besoin d'aide supplémentaire. Bonne chance avec votre projet! ?

Explorer le code

Visitez le référentiel GitHub pour explorer le code en détail.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Remplacer les caractères de chaîne en javascriptRemplacer les caractères de chaîne en javascriptMar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

jQuery Vérifiez si la date est validejQuery Vérifiez si la date est valideMar 01, 2025 am 08:51 AM

Des fonctions JavaScript simples sont utilisées pour vérifier si une date est valide. fonction isValidDate (s) { var bits = s.split ('/'); var d = new Date (bits [2] '/' bits [1] '/' bits [0]); return !! (d && (d.getMonth () 1) == bits [1] && d.getDate () == Number (bits [0])); } //test var

jQuery obtient un rembourrage / marge d'élémentjQuery obtient un rembourrage / marge d'élémentMar 01, 2025 am 08:53 AM

Cet article explique comment utiliser jQuery pour obtenir et définir les valeurs de marge et de marge intérieures des éléments DOM, en particulier les emplacements spécifiques de la marge extérieure et des marges intérieures de l'élément. Bien qu'il soit possible de définir les marges intérieures et extérieures d'un élément à l'aide de CSS, l'obtention de valeurs précises peut être délicate. // installation $ ("div.header"). CSS ("marge", "10px"); $ ("div.header"). css ("padding", "10px"); Vous pourriez penser que ce code est

10 onglets jQuery Accordion10 onglets jQuery AccordionMar 01, 2025 am 01:34 AM

Cet article explore dix onglets jQuery exceptionnels et accordéons. La principale différence entre les onglets et les accordéons réside dans la façon dont leurs panneaux de contenu sont affichés et cachés. Plongeons ces dix exemples. Articles connexes: 10 plugins de l'onglet jQuery

10 vaut la peine de vérifier les plugins jQuery10 vaut la peine de vérifier les plugins jQueryMar 01, 2025 am 01:29 AM

Découvrez dix plugins jQuery exceptionnels pour élever le dynamisme et l'attrait visuel de votre site Web! Cette collection organisée offre diverses fonctionnalités, de l'animation d'image aux galeries interactives. Explorons ces outils puissants: Related Posts: 1

Http débogage avec le nœud et le http-consoleHttp débogage avec le nœud et le http-consoleMar 01, 2025 am 01:37 AM

HTTP-Console est un module de nœud qui vous donne une interface de ligne de commande pour exécuter les commandes HTTP. C'est idéal pour le débogage et voir exactement ce qui se passe avec vos demandes HTTP, qu'elles soient faites contre un serveur Web, Web Serv

Tutoriel de configuration de l'API de recherche Google personnaliséTutoriel de configuration de l'API de recherche Google personnaliséMar 04, 2025 am 01:06 AM

Ce tutoriel vous montre comment intégrer une API de recherche Google personnalisée dans votre blog ou site Web, offrant une expérience de recherche plus raffinée que les fonctions de recherche de thème WordPress standard. C'est étonnamment facile! Vous pourrez restreindre les recherches à Y

jQuery Ajouter une barre de défilement à divjQuery Ajouter une barre de défilement à divMar 01, 2025 am 01:30 AM

L'extrait de code jQuery suivant peut être utilisé pour ajouter des barres de défilement lorsque le contenu DIV dépasse la zone de l'élément de conteneur. (Pas de démonstration, veuillez le copier directement sur Firebug) // d = document // w = fenêtre // $ = jQuery var contentArea = $ (this), wintop = contentArea.scrollTop (), docheight = $ (d) .height (), winheight = $ (w) .height (), divheight = $ ('# c

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel