No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 a帽o

Antes: $249

Currency
$209/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

15D
12H
58M
45S

Setup y maquetaci贸n del proyecto

12/25
Recursos

Aportes 5

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Lo primero antes de hacer pruebas a las conexiones http con conexiones a API鈥檚 sera crear nuestro setup.

Para ello lo primero sera instalar un framework minimalista de dise帽o que tenga precargado las etiquetas html pero que no sea tan pesado. Por lo que no se tendra que pensar en clases como por ejemplo miligram
o simple.css o pico.css

Para este ejemplo usaremos pico.css

lo instalamos

npm install @picocss/pico

una vez instalado vamos al nodemodules, buscamos la carpeta de @picocss/pico/css y buscamos el archivo pico.min.css, damos clic derecho y copiamos su ruta relativa.

despues vamos al archivo angular.json y lo pegamos en la reglas styles

"options": {
聽 聽 聽 聽 聽 聽 "styles": [
聽 聽 聽 聽 聽 聽 聽 "src/styles.scss",
聽 聽 聽 聽 聽 聽 聽 "node_modules/@picocss/pico/css/pico.min.css"
聽 聽 聽 聽 聽 聽 ],
聽 聽 聽 聽 聽 聽 "scripts": []
聽 聽 聽 聽 聽 },

con estos cambios vamos a reescribir la landing page de nuestra aplicaci贸n

app.component.html

<header class="container"><h1>Angular Testing</h1><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae illum saepe odio suscipit id sapiente consequuntur, ipsa laboriosam eius debitis quidem nisi quos veritatis eum soluta adipisci repellat commodi. Esse.</p><nav>
聽 聽 <ul>
聽 聽 聽 <li><a href="/">Home</a></li>
聽 聽 聽 <li><a routerLink="/products">Products</a></li>
聽 聽 聽 <li><a routerLink="/pico-preview">Pico Preview</a></li>
聽 聽 </ul></nav>
</header>
<router-outlet></router-outlet>

posteriormente creamos la carpeta components con dos componentes el de produts y el de pico-preview

ng g c components/products

ng g c components/pico-preview

y vamos a hacer un routing a estos componentes para verlos renderizados

app-routing.module.ts

import { ProductsComponent } from './components/products/products.component';
import { PicoPreviewComponent } from './components/pico-preview/pico-preview.component';

const routes: Routes = [
聽 {
聽 聽 path: 'products',
聽 聽 component: ProductsComponent
聽 },
聽 {
聽 聽 path: 'pico-preview',
聽 聽 component: PicoPreviewComponent
聽 }
];

luego modelamos los componentes de products y preview

products.component.html

<section class="container"><h1>Products Component</h1>
</section>

preview.component.html

<!-- preview -->
<section id="preview" class="container"><h2>Preview</h2><p>Sed ultricies dolor non ante vulputate hendrerit. Vivamus sit amet suscipit sapien. Nulla iaculis eros a elit pharetra egestas.</p><form>
聽 聽 <div class="grid">
聽 聽 聽 <input type="text" name="firstnane" placeholder="First name" aria-label="First name" required>
聽 聽 聽 <input type="email" name="email" placeholder="Email address" aria-label="Email address" required>
聽 聽 聽 <button type="submit">Subscribe</button>
聽 聽 </div>
聽 聽 <fieldset>
聽 聽 聽 <label for="terms">
聽 聽 聽 聽 <input type="checkbox" role="switch" id="terms" name="terms">
聽 聽 聽 聽 <span>I agree to the <a href="#" onclick="event.preventDefault()">Privacy Policy</a></span>
聽 聽 聽 </label>
聽 聽 </fieldset></form>
</section>
<!-- ./ Preview -->
<!-- Typografy -->
<section id="typografy" class="container"><h2>Typografy</h2><p>Aliquam lobortis vitae nibh nec rhoncus. Morbi mattis neque eget efficitur feugiat. Vivamus porta nunc a erat mattis, mattis feugiat turpis pretium. Quisque sed tristique felis.</p><!-- Blockquote --><blockquote>
聽 聽 Maecenas vehicula metus tellus, vitae congue turpis hendrerit non. Nam at dui sit amet ipsum cursus ornare.
聽 聽 <footer>
聽 聽 聽 <cite> - Phasellus eget lacinia </cite>
聽 聽 </footer></blockquote><!-- Lists --><h3>Lists</h3><ul>
聽 聽 <li>
聽 聽 聽 Aliquam lobortis lacus eu libero ornare facilisis.
聽 聽 </li>
聽 聽 <li>
聽 聽 聽 Nam et magna at libero scelerisque egestas.
聽 聽 </li>
聽 聽 <li>
聽 聽 聽 Suspendisse id nisl ut leo finibus vehicula quis eu ex.
聽 聽 </li>
聽 聽 <li>
聽 聽 聽 Proin ultricies turpis et volutpat vehicula.
聽 聽 </li></ul><!-- Inline text elements --><h3>Inline text elements</h3><div class="grid">
聽 聽 <p>
聽 聽 聽 <a href="#" onclick="event.preventDefault()">Primary Link</a>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <a href="#" class="secondary" onclick="event.preventDefault()">Secondary Link</a>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <a href="#" class="contrast" onclick="event.preventDefault()">Contrast Link</a>
聽 聽 </p></div><div class="grid">
聽 聽 <p>
聽 聽 聽 <strong>Bold</strong>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <em>Italic</em>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <u>Underline</u>
聽 聽 </p></div><div class="grid">
聽 聽 <p>
聽 聽 聽 <del>Deleted</del>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <ins>Inserted</ins>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <s>Strikethrough</s>
聽 聽 </p></div><div class="grid">
聽 聽 <p>
聽 聽 聽 <small>Small</small>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 Text
聽 聽 聽 <sub>Sub</sub>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 Text
聽 聽 聽 <sup>Sup</sup>
聽 聽 </p></div><div class="grid">
聽 聽 <p>
聽 聽 聽 <abbr title="Abbreviation" data-tooltip="Abbreviation">Abbr</abbr>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <kbd>Kdb</kbd>
聽 聽 </p>
聽 聽 <p>
聽 聽 聽 <mark>Highlighted</mark>
聽 聽 </p></div><!-- Heading --><h3>Heading 3</h3><p>
聽 聽 Integer bibendum malesuada libero vel eleifend. Fusce iaculis turpis ipsum, at efficitur sem scelerisque vel. Aliquam auctor diam ut purus cursus fringilla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
聽 </p><h4>Heading 4</h4><p>
聽 聽 Cras fermentum velit vitae auctor aliquet. Nunc non congue urna, at blandit nibh. Donec ac fermentum felis. Vivamus tincidunt arcu ut lacus hendrerit, eget mattis dui finibus.
聽 </p><h5>Heading 5</h5><p>
聽 聽 Donec nec egestas nulla. Sed varius placerat felis eu suscipit. Mauris maximus ante in consequat luctus. Morbi euismod sagittis efficitur. Aenean non eros orci. Vivamus ut diam sem.
聽 </p><h6>Heading 6</h6><p>
聽 聽 Ut sed quam non mauris placerat consequat vitae id risus. Vestibulum tincidunt nulla ut tortor posuere, vitae malesuada tortor molestie. Sed nec interdum dolor. Vestibulum id auctor nisi, a efficitur sem. Aliquam sollicitudin efficitur turpis, sollicitudin hendrerit ligula semper id. Nunc risus felis, egestas eu tristique eget, convallis in velit.
聽 </p><!-- Medias --><figure>
聽 聽 <img src="https://source.unsplash.com/a562ZEFKW8I/2000x1000" alt="Minimal landscape">

聽 聽 <figcaption>

聽 聽 聽 Image from

聽 聽 聽 <a href="https://unsplash.com">unsplash.com</a>

聽 聽 </figcaption></figure>

</section>

<!-- ./ Typografy -->

<!-- Buttons -->

<section class="container" id="buttons"><h2>Buttons</h2><div class="grid">

聽 聽 <button>Primary</button>

聽 聽 <button class="secondary">Secondary</button>

聽 聽 <button class="contrat">Contrast</button></div><div class="grid">

聽 聽 <button class="outline">Primary outline</button>

聽 聽 <button class="outline secondary">Secondary outline</button>

聽 聽 <button class="outline contrast">Contrast outline</button></div>

</section>

<!-- ./ Buttons -->

<!-- Form elements -->

<section id="form" class="container"><form>

聽 聽 <h2>Form elements</h2>

聽 聽 <!-- Search -->

聽 聽 <label for="search">Search</label>

聽 聽 <input type="search" id="search" name="search" placeholder="Search">

聽 聽 <!-- Text -->

聽 聽 <label for="text">Text</label>

聽 聽 <input type="text" id="text" name="text" placeholder="Text">

聽 聽 <small>Curabitur consequat lacus at lacus porta finibus.</small>

聽 聽 <!-- Select -->

聽 聽 <label for="select">Select</label>

聽 聽 <select name="select" id="select" required>

聽 聽 聽 <option value selected>Select...</option>

聽 聽 聽 <option>...</option>

聽 聽 </select>

聽 聽 <!-- File browser -->

聽 聽 <label for="file">

聽 聽 聽 File browser

聽 聽 聽 <input type="file" id="file" name="file">

聽 聽 </label>

聽 聽 <!-- Range slider control -->

聽 聽 <label for="range">

聽 聽 聽 Range slider

聽 聽 聽 <input type="range" min="0" max="100" value="50" id="range" name="range">

聽 聽 </label>

聽 聽 <!-- States -->

聽 聽 <div class="grid">

聽 聽 聽 <label for="valid">

聽 聽 聽 聽 Valid

聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 type="text"

聽 聽 聽 聽 聽 id="valid"

聽 聽 聽 聽 聽 name="valid"

聽 聽 聽 聽 聽 placeholder="Valid"

聽 聽 聽 聽 聽 aria-invalid="false"

聽 聽 聽 聽 />

聽 聽 聽 </label>

聽 聽 聽 <label for="invalid">

聽 聽 聽 聽 Invalid

聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 type="text"

聽 聽 聽 聽 聽 id="invalid"

聽 聽 聽 聽 聽 name="invalid"

聽 聽 聽 聽 聽 placeholder="Invalid"

聽 聽 聽 聽 聽 aria-invalid="true"

聽 聽 聽 聽 />

聽 聽 聽 </label>

聽 聽 聽 <label for="disabled">

聽 聽 聽 聽 Disabled

聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 type="text"

聽 聽 聽 聽 聽 id="disabled"

聽 聽 聽 聽 聽 name="disabled"

聽 聽 聽 聽 聽 placeholder="Disabled"

聽 聽 聽 聽 聽 disabled

聽 聽 聽 聽 />

聽 聽 聽 </label>

聽 聽 </div>

  

聽 聽 <div class="grid">

聽 聽 聽 <!-- Date-->

聽 聽 聽 <label for="date"

聽 聽 聽 聽 >Date

聽 聽 聽 聽 <input type="date" id="date" name="date" />

聽 聽 聽 </label>

  

聽 聽 聽 <!-- Time-->

聽 聽 聽 <label for="time"

聽 聽 聽 聽 >Time

聽 聽 聽 聽 <input type="time" id="time" name="time" />

聽 聽 聽 </label>

  

聽 聽 聽 <!-- Color-->

聽 聽 聽 <label for="color"

聽 聽 聽 聽 >Color

聽 聽 聽 聽 <input type="color" id="color" name="color" value="#0eaaaa" />

聽 聽 聽 </label>

聽 聽 </div>

  

聽 聽 <div class="grid">

聽 聽 聽 <!-- Checkboxes -->

聽 聽 聽 <fieldset>

聽 聽 聽 聽 <legend><strong>Checkboxes</strong></legend>

聽 聽 聽 聽 <label for="checkbox-1">

聽 聽 聽 聽 聽 <input type="checkbox" id="checkbox-1" name="checkbox-1" checked />

聽 聽 聽 聽 聽 Checkbox

聽 聽 聽 聽 </label>

聽 聽 聽 聽 <label for="checkbox-2">

聽 聽 聽 聽 聽 <input type="checkbox" id="checkbox-2" name="checkbox-2" />

聽 聽 聽 聽 聽 Checkbox

聽 聽 聽 聽 </label>

聽 聽 聽 </fieldset>

  

聽 聽 聽 <!-- Radio buttons -->

聽 聽 聽 <fieldset>

聽 聽 聽 聽 <legend><strong>Radio buttons</strong></legend>

聽 聽 聽 聽 <label for="radio-1">

聽 聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 聽 type="radio"

聽 聽 聽 聽 聽 聽 id="radio-1"

聽 聽 聽 聽 聽 聽 name="radio"

聽 聽 聽 聽 聽 聽 value="radio-1"

聽 聽 聽 聽 聽 聽 checked

聽 聽 聽 聽 聽 />

聽 聽 聽 聽 聽 Radio button

聽 聽 聽 聽 </label>

聽 聽 聽 聽 <label for="radio-2">

聽 聽 聽 聽 聽 <input type="radio" id="radio-2" name="radio" value="radio-2" />

聽 聽 聽 聽 聽 Radio button

聽 聽 聽 聽 </label>

聽 聽 聽 </fieldset>

  

聽 聽 聽 <!-- Switch -->

聽 聽 聽 <fieldset>

聽 聽 聽 聽 <legend><strong>Switches</strong></legend>

聽 聽 聽 聽 <label for="switch-1">

聽 聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 聽 type="checkbox"

聽 聽 聽 聽 聽 聽 id="switch-1"

聽 聽 聽 聽 聽 聽 name="switch-1"

聽 聽 聽 聽 聽 聽 role="switch"

聽 聽 聽 聽 聽 聽 checked

聽 聽 聽 聽 聽 />

聽 聽 聽 聽 聽 Switch

聽 聽 聽 聽 </label>

聽 聽 聽 聽 <label for="switch-2">

聽 聽 聽 聽 聽 <input

聽 聽 聽 聽 聽 聽 type="checkbox"

聽 聽 聽 聽 聽 聽 id="switch-2"

聽 聽 聽 聽 聽 聽 name="switch-2"

聽 聽 聽 聽 聽 聽 role="switch"

聽 聽 聽 聽 聽 />

聽 聽 聽 聽 聽 Switch

聽 聽 聽 聽 </label>

聽 聽 聽 </fieldset>

聽 聽 </div>

  

聽 聽 <!-- Buttons -->

聽 聽 <input type="reset" value="Reset" onclick="event.preventDefault()" />

聽 聽 <input type="submit" value="Submit" onclick="event.preventDefault()" /></form>

</section>

<!-- ./ Form elements-->

  

<!-- Tables -->

<section id="tables"><h2>Tables</h2><figure>

聽 聽 <table role="grid">

聽 聽 聽 <thead>

聽 聽 聽 聽 <tr>

聽 聽 聽 聽 聽 <th scope="col">#</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 聽 <th scope="col">Heading</th>

聽 聽 聽 聽 </tr>

聽 聽 聽 </thead>

聽 聽 聽 <tbody>

聽 聽 聽 聽 <tr>

聽 聽 聽 聽 聽 <th scope="row">1</th>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 </tr>

聽 聽 聽 聽 <tr>

聽 聽 聽 聽 聽 <th scope="row">2</th>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 </tr>

聽 聽 聽 聽 <tr>

聽 聽 聽 聽 聽 <th scope="row">3</th>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 聽 <td>Cell</td>

聽 聽 聽 聽 </tr>

聽 聽 聽 </tbody>

聽 聽 </table></figure>

</section>

<!-- ./ Tables -->

  

<!-- Accordions -->

<section id="accordions"><h2>Accordions</h2><details>

聽 聽 <summary>Collapsible elements 1</summary>

聽 聽 <p>

聽 聽 聽 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque

聽 聽 聽 urna diam, tincidunt nec porta sed, auctor id velit. Etiam venenatis

聽 聽 聽 nisl ut orci consequat, vitae tempus quam commodo. Nulla non mauris

聽 聽 聽 ipsum. Aliquam eu posuere orci. Nulla convallis lectus rutrum quam

聽 聽 聽 hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar mi,

聽 聽 聽 dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta

聽 聽 聽 turpis sit amet, congue turpis.

聽 聽 </p></details><details open>

聽 聽 <summary>Collapsible elements 2</summary>

聽 聽 <ul>

聽 聽 聽 <li>Vestibulum id elit quis massa interdum sodales.</li>

聽 聽 聽 <li>Nunc quis eros vel odio pretium tincidunt nec quis neque.</li>

聽 聽 聽 <li>Quisque sed eros non eros ornare elementum.</li>

聽 聽 聽 <li>Cras sed libero aliquet, porta dolor quis, dapibus ipsum.</li>

聽 聽 </ul></details>

</section>

<!-- ./ Accordions -->

  

<!-- Article-->

<article id="article"><h2>Article</h2><p>

聽 聽 Nullam dui arcu, malesuada et sodales eu, efficitur vitae dolor. Sed

聽 聽 ultricies dolor non ante vulputate hendrerit. Vivamus sit amet suscipit

聽 聽 sapien. Nulla iaculis eros a elit pharetra egestas. Nunc placerat

聽 聽 facilisis cursus. Sed vestibulum metus eget dolor pharetra rutrum.

聽 </p><footer>

聽 聽 <small>Duis nec elit placerat, suscipit nibh quis, finibus neque.</small></footer>

</article>

<!-- ./ Article-->

  

<!-- Progress -->

<section id="progress"><h2>Progress bar</h2><progress id="progress-1" value="25" max="100"></progress><progress id="progress-2"></progress>

</section>

<!-- ./ Progress -->

  

<!-- Loading -->

<section id="loading"><h2>Loading</h2><article aria-busy="true"></article><button aria-busy="true">Please wait鈥</button>

</section>

<!-- ./ Loading -->

<!-- Footer -->

<footer class="container">

<small

聽 >Built with <a href="https://picocss.com">Pico</a> 鈥

聽 <a href="https://github.com/picocss/examples/blob/master/preview/index.html"

聽 聽 >Source code</a

聽 ></small

>

</footer>

<!-- ./ Footer -->
<main class="container">
  <section>
    <h2>Preview</h2>
    <p>
      Sed ultricies dolor non ante vulputate hendrerit. Vivamus sit amet
      suscipit sapien. Nulla iaculis eros a elit pharetra egestas.
    </p>
    <form>
      <div class="grid">
        <input
          type="text"
          name="firstname"
          placeholder="First name"
          aria-label="First name"
          required
        />
        <input
          type="email"
          name="email"
          placeholder="Email address"
          aria-label="Email address"
          required
        />
        <button type="submit">Subscribe</button>
      </div>
      <fieldset>
        <label for="terms">
          <input type="checkbox" role="switch" id="terms" name="terms" />
          I agree to the
          <a href="#">Privacy Policy</a>
        </label>
      </fieldset>
    </form>
  </section>
  <!-- ./ Preview -->

  <!-- Typography-->
  <section>
    <h2>Typography</h2>
    <p>
      Aliquam lobortis vitae nibh nec rhoncus. Morbi mattis neque eget efficitur
      feugiat. Vivamus porta nunc a erat mattis, mattis feugiat turpis pretium.
      Quisque sed tristique felis.
    </p>

    <!-- Blockquote-->
    <blockquote>
      "Maecenas vehicula metus tellus, vitae congue turpis hendrerit non. Nam at
      dui sit amet ipsum cursus ornare."
      <footer>
        <cite>- Phasellus eget lacinia</cite>
      </footer>
    </blockquote>

    <!-- Lists-->
    <h3>Lists</h3>
    <ul>
      <li>Aliquam lobortis lacus eu libero ornare facilisis.</li>
      <li>Nam et magna at libero scelerisque egestas.</li>
      <li>Suspendisse id nisl ut leo finibus vehicula quis eu ex.</li>
      <li>Proin ultricies turpis et volutpat vehicula.</li>
    </ul>

    <!-- Inline text elements-->
    <h3>Inline text elements</h3>
    <div class="grid">
      <p><a href="#">Primary link</a></p>
      <p>
        <a href="#" class="secondary">Secondary link</a>
      </p>
      <p>
        <a href="#" class="contrast">Contrast link</a>
      </p>
    </div>
    <div class="grid">
      <p><strong>Bold</strong></p>
      <p><em>Italic</em></p>
      <p><u>Underline</u></p>
    </div>
    <div class="grid">
      <p><del>Deleted</del></p>
      <p><ins>Inserted</ins></p>
      <p><s>Strikethrough</s></p>
    </div>
    <div class="grid">
      <p><small>Small </small></p>
      <p>Text <sub>Sub</sub></p>
      <p>Text <sup>Sup</sup></p>
    </div>
    <div class="grid">
      <p><abbr title="Abbreviation" data-tooltip="Abbreviation">Abbr.</abbr></p>
      <p><kbd>Kbd</kbd></p>
      <p><mark>Highlighted</mark></p>
    </div>

    <!-- Headings-->
    <h3>Heading 3</h3>
    <p>
      Integer bibendum malesuada libero vel eleifend. Fusce iaculis turpis
      ipsum, at efficitur sem scelerisque vel. Aliquam auctor diam ut purus
      cursus fringilla. Class aptent taciti sociosqu ad litora torquent per
      conubia nostra, per inceptos himenaeos.
    </p>
    <h4>Heading 4</h4>
    <p>
      Cras fermentum velit vitae auctor aliquet. Nunc non congue urna, at
      blandit nibh. Donec ac fermentum felis. Vivamus tincidunt arcu ut lacus
      hendrerit, eget mattis dui finibus.
    </p>
    <h5>Heading 5</h5>
    <p>
      Donec nec egestas nulla. Sed varius placerat felis eu suscipit. Mauris
      maximus ante in consequat luctus. Morbi euismod sagittis efficitur. Aenean
      non eros orci. Vivamus ut diam sem.
    </p>
    <h6>Heading 6</h6>
    <p>
      Ut sed quam non mauris placerat consequat vitae id risus. Vestibulum
      tincidunt nulla ut tortor posuere, vitae malesuada tortor molestie. Sed
      nec interdum dolor. Vestibulum id auctor nisi, a efficitur sem. Aliquam
      sollicitudin efficitur turpis, sollicitudin hendrerit ligula semper id.
      Nunc risus felis, egestas eu tristique eget, convallis in velit.
    </p>

    <!-- Medias-->
    <figure>
      <img
        src="https://source.unsplash.com/a562ZEFKW8I/2000x1000"
        alt="Minimal landscape"
      />
      <figcaption>
        Image from <a href="https://unsplash.com">unsplash.com</a>
      </figcaption>
    </figure>
  </section>
  <!-- ./ Typography-->

  <!-- Buttons-->
  <section id="buttons">
    <h2>Buttons</h2>
    <div class="grid">
      <button>Primary</button>
      <button class="secondary">Secondary</button>
      <button class="contrast">Contrast</button>
    </div>
    <div class="grid">
      <button class="outline">Primary outline</button>
      <button class="outline secondary">Secondary outline</button>
      <button class="outline contrast">Contrast outline</button>
    </div>
  </section>
  <!-- ./ Buttons -->

  <!-- Form elements-->
  <section id="form">
    <form>
      <h2>Form elements</h2>

      <!-- Search -->
      <label for="search">Search</label>
      <input type="search" id="search" name="search" placeholder="Search" />

      <!-- Text -->
      <label for="text">Text</label>
      <input type="text" id="text" name="text" placeholder="Text" />
      <small>Curabitur consequat lacus at lacus porta finibus.</small>

      <!-- Select -->
      <label for="select">Select</label>
      <select id="select" name="select" required>
        <option value="" selected>Select鈥</option>
        <option></option>
      </select>

      <!-- File browser -->
      <label for="file"
        >File browser
        <input type="file" id="file" name="file" />
      </label>

      <!-- Range slider control -->
      <label for="range"
        >Range slider
        <input
          type="range"
          min="0"
          max="100"
          value="50"
          id="range"
          name="range"
        />
      </label>

      <!-- States -->
      <div class="grid">
        <label for="valid">
          Valid
          <input
            type="text"
            id="valid"
            name="valid"
            placeholder="Valid"
            aria-invalid="false"
          />
        </label>
        <label for="invalid">
          Invalid
          <input
            type="text"
            id="invalid"
            name="invalid"
            placeholder="Invalid"
            aria-invalid="true"
          />
        </label>
        <label for="disabled">
          Disabled
          <input
            type="text"
            id="disabled"
            name="disabled"
            placeholder="Disabled"
            disabled
          />
        </label>
      </div>

      <div class="grid">
        <!-- Date-->
        <label for="date"
          >Date
          <input type="date" id="date" name="date" />
        </label>

        <!-- Time-->
        <label for="time"
          >Time
          <input type="time" id="time" name="time" />
        </label>

        <!-- Color-->
        <label for="color"
          >Color
          <input type="color" id="color" name="color" value="#0eaaaa" />
        </label>
      </div>

      <div class="grid">
        <!-- Checkboxes -->
        <fieldset>
          <legend><strong>Checkboxes</strong></legend>
          <label for="checkbox-1">
            <input type="checkbox" id="checkbox-1" name="checkbox-1" checked />
            Checkbox
          </label>
          <label for="checkbox-2">
            <input type="checkbox" id="checkbox-2" name="checkbox-2" />
            Checkbox
          </label>
        </fieldset>

        <!-- Radio buttons -->
        <fieldset>
          <legend><strong>Radio buttons</strong></legend>
          <label for="radio-1">
            <input
              type="radio"
              id="radio-1"
              name="radio"
              value="radio-1"
              checked
            />
            Radio button
          </label>
          <label for="radio-2">
            <input type="radio" id="radio-2" name="radio" value="radio-2" />
            Radio button
          </label>
        </fieldset>

        <!-- Switch -->
        <fieldset>
          <legend><strong>Switches</strong></legend>
          <label for="switch-1">
            <input
              type="checkbox"
              id="switch-1"
              name="switch-1"
              role="switch"
              checked
            />
            Switch
          </label>
          <label for="switch-2">
            <input
              type="checkbox"
              id="switch-2"
              name="switch-2"
              role="switch"
            />
            Switch
          </label>
        </fieldset>
      </div>

      <!-- Buttons -->
      <input type="reset" value="Reset" onclick="event.preventDefault()" />
      <input type="submit" value="Submit" onclick="event.preventDefault()" />
    </form>
  </section>
  <!-- ./ Form elements-->

  <!-- Tables -->
  <section id="tables">
    <h2>Tables</h2>
    <figure>
      <table role="grid">
        <thead>
          <tr>
            <th scope="col">#</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
            <th scope="col">Heading</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">1</th>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
          </tr>
          <tr>
            <th scope="row">2</th>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
          </tr>
          <tr>
            <th scope="row">3</th>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
            <td>Cell</td>
          </tr>
        </tbody>
      </table>
    </figure>
  </section>
  <!-- ./ Tables -->

  <!-- Accordions -->
  <section id="accordions">
    <h2>Accordions</h2>
    <details>
      <summary>Collapsible elements 1</summary>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
        urna diam, tincidunt nec porta sed, auctor id velit. Etiam venenatis
        nisl ut orci consequat, vitae tempus quam commodo. Nulla non mauris
        ipsum. Aliquam eu posuere orci. Nulla convallis lectus rutrum quam
        hendrerit, in facilisis elit sollicitudin. Mauris pulvinar pulvinar mi,
        dictum tristique elit auctor quis. Maecenas ac ipsum ultrices, porta
        turpis sit amet, congue turpis.
      </p>
    </details>
    <details open>
      <summary>Collapsible elements 2</summary>
      <ul>
        <li>Vestibulum id elit quis massa interdum sodales.</li>
        <li>Nunc quis eros vel odio pretium tincidunt nec quis neque.</li>
        <li>Quisque sed eros non eros ornare elementum.</li>
        <li>Cras sed libero aliquet, porta dolor quis, dapibus ipsum.</li>
      </ul>
    </details>
  </section>
  <!-- ./ Accordions -->

  <!-- Article-->
  <article id="article">
    <h2>Article</h2>
    <p>
      Nullam dui arcu, malesuada et sodales eu, efficitur vitae dolor. Sed
      ultricies dolor non ante vulputate hendrerit. Vivamus sit amet suscipit
      sapien. Nulla iaculis eros a elit pharetra egestas. Nunc placerat
      facilisis cursus. Sed vestibulum metus eget dolor pharetra rutrum.
    </p>
    <footer>
      <small>Duis nec elit placerat, suscipit nibh quis, finibus neque.</small>
    </footer>
  </article>
  <!-- ./ Article-->

  <!-- Progress -->
  <section id="progress">
    <h2>Progress bar</h2>
    <progress id="progress-1" value="25" max="100"></progress>
    <progress id="progress-2"></progress>
  </section>
  <!-- ./ Progress -->

  <!-- Loading -->
  <section id="loading">
    <h2>Loading</h2>
    <article aria-busy="true"></article>
    <button aria-busy="true">Please wait鈥</button>
  </section>
  <!-- ./ Loading -->
</main>
<!-- ./ Main -->

<!-- Footer -->
<footer class="container">
  <small
    >Built with <a href="https://picocss.com">Pico</a><a href="https://github.com/picocss/examples/blob/master/preview/index.html"
      >Source code</a
    ></small
  >
</footer>
<!-- ./ Footer -->
El profesor debe tener mucho conocimiento y no dudo mucho del esfuerzo que har谩 por ense帽arnos, pero un tips, algunos detalles pareceran peque帽os pero a veces te hacen ir a leerte para que funciona y para que lo esta utilizando el profesor, digo yo que considerando que uno esta pagando podrian ser mas especificos y que no se salgan esos detalles.
Si tienen problema instalando PicoCSS pueden probar instalandolo por CDN en vez de npm, solo es colocar esta l铆nea en el `<head>` del archivo `index.html` ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@1/css/pico.min.css"> ```

馃槂 Ac谩 el template de ejemplo en pico.css:
https://github.com/picocss/examples/blob/master/classless/index.html