<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hendrix Garcia</title>
    <description>The latest articles on DEV Community by Hendrix Garcia (@hdrxgarcia).</description>
    <link>https://dev.to/hdrxgarcia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F838355%2F41131ba1-232a-4e12-9002-3f671bf4ed96.jpeg</url>
      <title>DEV Community: Hendrix Garcia</title>
      <link>https://dev.to/hdrxgarcia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hdrxgarcia"/>
    <language>en</language>
    <item>
      <title>Como construir uma aplicação CRUD: o mais simples possível</title>
      <dc:creator>Hendrix Garcia</dc:creator>
      <pubDate>Mon, 18 Apr 2022 19:58:30 +0000</pubDate>
      <link>https://dev.to/hdrxgarcia/como-construir-uma-aplicacao-crud-o-mais-simples-possivel-44ka</link>
      <guid>https://dev.to/hdrxgarcia/como-construir-uma-aplicacao-crud-o-mais-simples-possivel-44ka</guid>
      <description>&lt;p&gt;Hoje vamos aprender como fazer operações CRUD usando JavaScript e criar a parte lógica de um app de mídia social.&lt;br&gt;
Vamos lá! 👨🏻‍💻&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Partindo do básico: O que é CRUD?
&lt;/h2&gt;

&lt;p&gt;CRUD é um tipo de mecanismo que permite criar dados, ler dados, editar e excluir esses dados.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;C: Criar um novo registro&lt;/li&gt;
&lt;li&gt;R: Ler as informações de um registro&lt;/li&gt;
&lt;li&gt;U: Atualizar os dados de um registro&lt;/li&gt;
&lt;li&gt;D: Excluir um registro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3md2xtw76u0y1fr8polm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3md2xtw76u0y1fr8polm.png" alt="Features de Crud"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Configuração Inicial do projeto
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Crie 3 arquivos chamados: index.html, style.css e main.js&lt;/li&gt;
&lt;li&gt;Copiar os códigos do arquivo html &amp;amp; css que subi neste repositório "x.github.com"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para o tutorial não ficar muito extenso, vou explicar somente a parte lógica da aplicação ou seja o JavaScript.&lt;/p&gt;
&lt;h4&gt;
  
  
  Este é o fluxograma do nosso projeto 👇
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlsw0253j7st1ictip03.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlsw0253j7st1ictip03.png" alt="fluxograma"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você não entendeu, não tem problema, vai ficar mais fácil ao decorrer da leitura desse artigo.&lt;br&gt;
Agora que conhecemos o fluxograma, vamos lá...&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Validação do Formulário
&lt;/h2&gt;

&lt;p&gt;Primeiro, precisamos criar as variáveis no JS puxando os elementos do HTML pelos seus respectivos ID's.&lt;br&gt;
Dessa maneira: 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;form&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;form&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;msgErro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;msgErro&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;posts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;posts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois, criamos um evento 'submit' para o form e com ele podemos previnir o comportamento padrão.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;form&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;submit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Previnindo o comportamento padrão do formulário&lt;/span&gt;
  &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;preventDefault&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="c1"&gt;// Testando o clique no botão&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Botão clicado!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="nf"&gt;validarFormulario&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Pré-definindo função&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na sequência, criamos uma função para validar o formulário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;validarFormulario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos criar declarações condicionais dentro de &lt;code&gt;validarFormulario()&lt;/code&gt; para previnir os usuários de enviar com o valor do campo branco ou vazio.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;validarFormulario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Se o campo estiver vazio:&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;msgErro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Preencha o campo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dados não foram aceitos.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Dar foco no campo com erro é uma boa prática&lt;/span&gt;
    &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="c1"&gt;// Se o campo não estiver vazio:&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dados aceitos.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;msgErro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Limpando a msg de erro&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora como poderemos ver, uma mensagem de erro será mostrado se o usuário tentar enviar o formulário em branco.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Como aceitar os dados recebidos no campo de entrada
&lt;/h2&gt;

&lt;p&gt;Quaisquer que sejam os dados que obtivermos dos campos de entrada, armazenaremos em um objeto &lt;code&gt;dados&lt;/code&gt;.&lt;br&gt;
Vamos criar este objeto e uma função chamada &lt;code&gt;aceitarDados()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;dados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;aceitarDados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A ideia principal aqui é que, usando essa função coletamos os dados do input e armazenamos no nosso objeto &lt;code&gt;dados&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;aceitarDados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Valor de Entrada&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também precisamos da função aceitarDados para funcionar quando o usuário clicar no botão enviar.&lt;br&gt;
Para isso, nós vamos declarar a função na condicional &lt;code&gt;else&lt;/code&gt; da nossa função &lt;code&gt;validarFormulario()&lt;/code&gt;. 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;validarFormulario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Outros códigos aqui&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Outros códigos aqui&lt;/span&gt;
    &lt;span class="nf"&gt;aceitarDados&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Escrevendo aceitar dados&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quando inserimos dados e enviamos o formulário, no console podemos ver um objeto contendo os valores de entrada do nosso usuário. Tipo assim: 👇&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F88%2Fa9%2FYKHoc6lx_o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F88%2Fa9%2FYKHoc6lx_o.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Como criar as postagens usando Template Strings
&lt;/h2&gt;

&lt;p&gt;Para postar nossos dados de entrada na div posts, precisamos criar um elemento div e anexá-lo ao div posts. Primeiro, vamos criar uma função e escrever estas linhas: 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;criarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;``&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os &lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt; são template strings.&lt;br&gt;
O que escrevermos dentro dele funcionará como HTML.&lt;br&gt;
Aqui, precisamos criar 3 coisas: um div pai, apresentar o valor da entrada no input e o div de opções que carregará os ícones de edição e exclusão.&lt;br&gt;
Vamos em frente finalizar nossa função!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;criarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;posts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s2"&gt;`
    &amp;lt;div&amp;gt;
        &amp;lt;p&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Entrada de Texto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;/p&amp;gt;
        &amp;lt;span class="options"&amp;gt;
            &amp;lt;i onClick="editPost(this)" class="fas fa-edit"&amp;gt;&amp;lt;/i&amp;gt;
            &amp;lt;i onClick="deletePost(this)" class="fas fa-trash-alt"&amp;gt;&amp;lt;/i&amp;gt;
        &amp;lt;/span&amp;gt;
    &amp;lt;/div&amp;gt;
  `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c1"&gt;// Depois de criar a postagem, limpamos o input&lt;/span&gt;
  &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na nossa função &lt;code&gt;aceitarDados()&lt;/code&gt;, nós vamos declarar a função &lt;code&gt;criarPost()&lt;/code&gt;.&lt;br&gt;
Assim: 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;aceitarDados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Outros códigos aqui&lt;/span&gt;

  &lt;span class="nf"&gt;criarPost&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado até aqui deve estar parecido com isso:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2Fb7%2F98%2F3uQDlaCo_o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2Fb7%2F98%2F3uQDlaCo_o.gif"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Como deletar posts
&lt;/h2&gt;

&lt;p&gt;Para excluir um post, primeiro precisamos criar uma função responsável por essa tarefa dentro do nosso arquivo javascript.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;deletarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, adicionar essa função &lt;code&gt;deletarPost()&lt;/code&gt; dentro de todos os nossos ícones de exclusão usando o atributo &lt;code&gt;onClick&lt;/code&gt;.&lt;br&gt;
Você escreverá essas linhas em HTML e no template string. 👇&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;deletePost(this)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fas fa-trash-alt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A palavra &lt;code&gt;this&lt;/code&gt; vai fazer referência ao elemento que acionou o evento.&lt;br&gt;
Nesse caso, fará referência ao botão de delete.&lt;/p&gt;

&lt;p&gt;Muita atenção agora no &lt;code&gt;HTML&lt;/code&gt;, o parent do botão delete é o span com a classe opções.&lt;/p&gt;

&lt;p&gt;Então, vamos escrever &lt;code&gt;parentElement&lt;/code&gt; duas vezes para pularmos do ícone com a função delete até a div onde aparece a tarefa para remove-lá por completo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;deletarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E agora você também pode deletar os posts que adicionou: 👇&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F64%2F2c%2FYrmDasQz_o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F64%2F2c%2FYrmDasQz_o.gif"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Como editar os posts
&lt;/h2&gt;

&lt;p&gt;Para editar um post, primeiro precisamos criar a respectiva função dentro do nosso arquivo JavaScript.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;editarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, adicionar essa função &lt;code&gt;editarPost()&lt;/code&gt; dentro de todos os nossos ícones de edição usando o atributo &lt;code&gt;onClick&lt;/code&gt;.&lt;br&gt;
Você escreverá essas linhas em HTML e no template string:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;editPost(this)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fas fa-edit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A palavra &lt;code&gt;this&lt;/code&gt; vai fazer referência ao elemento que acionou o evento.&lt;br&gt;
Nesse caso, fará referência ao botão de edição.&lt;/p&gt;

&lt;p&gt;Muita atenção agora no &lt;code&gt;HTML&lt;/code&gt;, o parent do botão delete é o span com a classe opções.&lt;/p&gt;

&lt;p&gt;Então, vamos escrever &lt;code&gt;parentElement&lt;/code&gt; duas vezes para pularmos do ícone com a função editar até a div onde aparece a tarefa.&lt;/p&gt;

&lt;p&gt;Então, qualquer que seja os dados inseridos no post, nós traremos isso de volta ao input para editar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;editarPost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;previousElementSibling&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E agora também podemos editar os posts já adicionados: 👇&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F7d%2F68%2Fd3DPhlY7_o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages2.imgbox.com%2F7d%2F68%2Fd3DPhlY7_o.gif"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Em uma entrevista geralmente essa task serviria para avaliar sua &lt;b&gt;capacidade lógica&lt;/b&gt;, entendendo bem esse artigo você está dois passos a frente e conseguiria resolver o problema de uma maneira bem simples e completamente funcional.&lt;/p&gt;

&lt;p&gt;Agora claro, você pode e deve recriar esse projeto sozinho em busca de entender todos os conceitos envolvidos na criação, melhorar o layout e até mesmo adicionar novas features ao seu aplicativo CRUD.&lt;/p&gt;




&lt;p&gt;Espero que tenham gostado e evoluído seus conhecimentos com esse artigo! ✨&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fc.tenor.com%2FQQ7nj2VFyMgAAAAM%2Fgood-job-thumbs-up.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fc.tenor.com%2FQQ7nj2VFyMgAAAAM%2Fgood-job-thumbs-up.gif"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Princípios de Web Design</title>
      <dc:creator>Hendrix Garcia</dc:creator>
      <pubDate>Tue, 12 Apr 2022 18:26:10 +0000</pubDate>
      <link>https://dev.to/hdrxgarcia/principios-de-web-design-4bcl</link>
      <guid>https://dev.to/hdrxgarcia/principios-de-web-design-4bcl</guid>
      <description>&lt;p&gt;Quando as pessoas visitam seu site, a primeira coisa que sentem é o design dele.&lt;br&gt;
Mesmo que a página seja moderna e tenha uma ótima funcionalidade, um design ruim pode tornar todo o resto da página ou aplicação inútil.&lt;br&gt;
Neste post, apresento alguns dos princípios que aprendi em meus estudos de web design e comento um pouco a respeito de cada um dos pontos.&lt;br&gt;
Vamos lá!&lt;/p&gt;




&lt;h1&gt;
  
  
  Cores
&lt;/h1&gt;

&lt;p&gt;Escolher a cor certa é muito importante e você não pode simplesmente escolher qualquer uma com base na suas favoritas.&lt;br&gt;
Um site colorido não significa exatamente usar todas as cores diferentes, seja sensato e escolha uma única cor como base da paleta, depois de escolher a principal, pense em combinações que harmonizam e sejam agradáveis para utilizar no design do projeto.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Vermelho
&lt;/h3&gt;

&lt;p&gt;Vermelho lembra Amor, Energia e Intensidade.&lt;br&gt;
É o mais poderoso, mais forte e mais brilhante no círculo cromático.&lt;br&gt;
O tema vermelho é usado principalmente em sites de comércio eletrônico, entretenimento e moda. Com grande poderes vem grandes responsabilidades - logo, usar muito vermelho cria uma impressão negativa em seu design.&lt;br&gt;
Importante ressaltar que, o vermelho não é adequado para sites relacionados à natureza...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GOBTBT2z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AdwQ2x7Gnr7Rr6oc_.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GOBTBT2z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AdwQ2x7Gnr7Rr6oc_.gif" alt="exemplos site vermelho" width="879" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Amarelo
&lt;/h3&gt;

&lt;p&gt;Amarelo é para Alegria, Intelecto e Atenção.&lt;br&gt;
Você deve ter cuidado com o amarelo porque usar amarelo brilhante como plano de fundo &lt;strong&gt;pode prejudicar os olhos do usuário&lt;/strong&gt;, especialmente quando seu site precisa ser usado por um longo tempo.&lt;br&gt;
Amarelo é ótimo para títulos, logotipos, botões, etc. Então, para resumir, se o seu site ou app é do tipo em que os usuários precisam gastar bastante tempo, o amarelo não é a melhor escolha.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h-NBzcCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2APTDy9ntuA9-xNEM2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h-NBzcCY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2APTDy9ntuA9-xNEM2.gif" alt="exemplos site amarelo" width="801" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Verde
&lt;/h3&gt;

&lt;p&gt;Verde é sobre Frescura, Segurança e Crescimento.&lt;br&gt;
É por isso que a maioria das empresas de alimentos, nutrição e produtos orgânicos usa uma paleta de cores verde.&lt;br&gt;
É assim que eles transmitem o frescor de seus produtos digitalmente.&lt;br&gt;
Portanto, se o seu site for relacionado à comida ou à natureza, o verde é sua escolha.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JY9zlrTF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AJkf5IWcf_rcqXf_E.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JY9zlrTF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AJkf5IWcf_rcqXf_E.gif" alt="exemplos site verde" width="879" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Azul
&lt;/h3&gt;

&lt;p&gt;Estabilidade, Confiança e Serenidade.&lt;br&gt;
Agora você sabe por que a maioria das empresas financeiras, sites de empresas de criptomoedas são azuis!&lt;br&gt;
Além disso, alguns dos principais sites de mídia social, como Twitter e LinkedIn, têm o tema azul porque fazem as pessoas se sentirem seguras, confiantes e positivas usando sua plataforma.&lt;br&gt;
Então já sabe, use as redes sociais para espalhar positividade. 😉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pa9vECqs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2ApTqiZauTHFxefIPy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pa9vECqs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2ApTqiZauTHFxefIPy.gif" alt="exemplos site azul" width="879" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Roxo
&lt;/h3&gt;

&lt;p&gt;Finalmente roxo, roxo mostra Realeza, Riqueza e Feminilidade. As palavras dizem tudo...&lt;br&gt;
Portanto, os sites direcionados às mulheres provavelmente usarão roxo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ETQDALJc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AWXx-1oPA0dju2zpM.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ETQDALJc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AWXx-1oPA0dju2zpM.gif" alt="exemplos site roxo" width="880" height="490"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Tipografia
&lt;/h1&gt;

&lt;p&gt;A tipografia é outra coisa muito importante na criação de um site.&lt;br&gt;
De forma geral, o objetivo principal da tipografia é dar ordem estrutural e forma à comunicação escrita.&lt;br&gt;
Se o seu site tiver mais conteúdo textual, a escolha da fonte se tornará um dos elementos mais importantes na construção.&lt;br&gt;
Vamos ver nesse tópico um pouco mais sobre fontes.&lt;br&gt;
Vamos falar a respeito de duas grandes famílias de fontes muito utilizadas.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Serifa ou Serif
&lt;/h3&gt;


&lt;center&gt;
&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--224nCzmA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2A-uWtwelpKXp9I7iL.jpg" alt="Exemplo de fonte com Serifa" width="880" height="495"&gt;&lt;br&gt;
&lt;/center&gt;
&lt;br&gt;
A fonte com serifa é inspirada nas esculturas de mármore dos tempos antigos.&lt;br&gt; &lt;br&gt;
É difícil esculpir ângulos de 90 graus, então é por isso que a fonte serif tem curvatura tipo triângulo.&lt;br&gt; &lt;br&gt;
O tipo de letra com serifa faz você se sentir sério, autoritário e velho.&lt;br&gt; &lt;br&gt;
Serif &lt;b&gt;tem muitos subtipos&lt;/b&gt; como estilo antigo, transicional e moderno.&lt;br&gt;
Como as cores, as fontes também têm humores.&lt;br&gt; &lt;br&gt;
Hoje a fonte serif é vista como Tradicional, Estável e Respeitável.&lt;br&gt;&lt;br&gt;
&lt;b&gt;VOGUE&lt;/b&gt; é um dos melhores exemplos de uma font com serifa:&lt;br&gt;
&lt;center&gt;
&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oyt57CPh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/992/0%2AZh3I3SE3fDCpCJLj.jpg" alt="exemplo de fonte vogue" width="496" height="600"&gt;&lt;br&gt;
&lt;/center&gt;
&lt;h3&gt;
  
  
  Sem serifa ou Sans-Serif
&lt;/h3&gt;


&lt;center&gt;
&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LwDMs_HV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2Ax2VokyWjI65_Zv6W.jpg" alt="Exemplo de fonte com Serifa" width="880" height="495"&gt;&lt;br&gt;
&lt;/center&gt;
&lt;br&gt;
Sans serif é Sensível, Simples e Direto. Sans serif tem ângulos retos perfeitos.&lt;br&gt;
A maioria das startups tende a usar tipo de letra sem serifa.&lt;br&gt;
Você pode usar sem serifa para o corpo do texto porque torna o texto mais legível!&lt;br&gt;&lt;br&gt;


&lt;center&gt;
&lt;br&gt;
&lt;b&gt;Tip-1&lt;/b&gt; 💡&lt;br&gt;
&lt;/center&gt;
&lt;br&gt; &lt;br&gt;
Ao escolher fontes &lt;b&gt;não use mais que duas ou três fontes diferentes&lt;/b&gt; no seu projeto.




&lt;center&gt;
&lt;br&gt;
&lt;b&gt;Tip-2&lt;/b&gt; 💡&lt;br&gt;
&lt;/center&gt;
&lt;br&gt;

&lt;p&gt;&lt;b&gt;Evite usar essas fontes:&lt;/b&gt; comic sans, kristen, curlz, viner e papyrus.&lt;br&gt;
São difíceis de ler e são apenas para diversão.&lt;/p&gt;

&lt;p&gt;Antes de decidir sobre uma família de fontes, passe pelo &lt;a href="https://www.cssfontstack.com/"&gt;cssfontstack&lt;/a&gt; para saber quais fontes são seguras de usar.&lt;/p&gt;




&lt;h1&gt;
  
  
  Interface do usuário (UI)
&lt;/h1&gt;

&lt;p&gt;Depois de aprender sobre teoria das cores e tipografia, a próxima coisa que você precisa saber é sobre o design da interface do usuário.&lt;br&gt;
A interface do usuário (UI) é o conjunto dos controles e canais sensoriais mediante as quais um usuário pode comunicar-se com uma máquina.&lt;br&gt;
Uma boa interface do usuário deve ter um alto grau de usabilidade, ser amigável, intuitiva e te ajuda a criar um melhor relacionamento com seus clientes; Inclusive pode representar uma vantagem em termos de posicionamento ou SEO, pois incrementa o tempo de permanência do usuário.&lt;/p&gt;

&lt;h5&gt;
  
  
  Existem cinco fatores de UI:
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Hierarquia&lt;/li&gt;
&lt;li&gt;Layout&lt;/li&gt;
&lt;li&gt;Alinhamento &lt;/li&gt;
&lt;li&gt;Espaços em Branco (Whitespaces) &lt;/li&gt;
&lt;li&gt;Público&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Vamos entender esses fatores com exemplos:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  → Hierarquia
&lt;/h3&gt;

&lt;p&gt;Um exemplo rápido de hierarquia de texto:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X_c8LyzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AIL3jBxfQ4tNnAUZ5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X_c8LyzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AIL3jBxfQ4tNnAUZ5.png" alt="Exemplo de hierarquia de texto" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aqui o principal é de quem é esse certificado e para o que resta é mais apropriado. Os usuários podem não ter tempo de ler todo o texto, para isso destacar as informações mais importantes primeiro hierarquicamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--impxWS7B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2A5eqHtPRQXqd1I2pQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--impxWS7B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2A5eqHtPRQXqd1I2pQ.png" alt="Exemplo de hierarquia de cores" width="880" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Veja os pontos destacados pelas caixas verdes. Essas são as coisas que a maioria das pessoas considera sobre um produto, certo? Então essa é uma hierarquia de cores. Use a cor de forma inteligente para destacar as coisas que precisam atrair os usuários.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9k5_Gur9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2ARuaY0q0wFJ3m8Fog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9k5_Gur9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2ARuaY0q0wFJ3m8Fog.png" alt="Exemplo de hierarquia de tamanho" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora veja esta página de inscrição da Netflix. Aqui 1 &amp;gt; 2 &amp;gt; 3 de tamanho.&lt;br&gt; A primeira coisa que eles querem mostrar aos visitantes é sobre o que é a Netflix.&lt;br&gt; A segunda coisa preferida é que eles querem seu e-mail.&lt;br&gt; E a terceira coisa é pequena em comparação com as outras duas porque eles não consideram muito.&lt;/p&gt;

&lt;h3&gt;
  
  
  → Layout
&lt;/h3&gt;

&lt;p&gt;O layout é sobre como você organiza os elementos do seu site.&lt;br&gt;
Não seja tão sem graça colocando tudo no mesmo lugar que a Wikipedia; Separe os elementos em partes diferentes.&lt;br&gt;
Se houver muito texto, corte cada linha para 60 caracteres.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vt7g8MSI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2A_b3St7awC6KfgQP3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vt7g8MSI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2A_b3St7awC6KfgQP3.gif" alt="exemplo de layout" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  → Alinhamento
&lt;/h3&gt;

&lt;p&gt;Alinhamento é sobre como você posiciona um elemento em relação a outros elementos.&lt;br&gt;
Veja este exemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bdvicMwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AS8i32OEguEwlHS0O.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bdvicMwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AS8i32OEguEwlHS0O.gif" alt="exemplo de alinhamento" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Tem a diferença? Mesmo que ambos os sites tenham o mesmo conteúdo, apenas o alinhamento de diferentes elementos faz grande diferença.&lt;/p&gt;

&lt;h3&gt;
  
  
  → Espaços em branco
&lt;/h3&gt;

&lt;p&gt;Espaços em branco ou whitespaces refere-se ao espaço em torno de elementos.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vOZxE91u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AHftlfb0gW3tu7cRI.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vOZxE91u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AHftlfb0gW3tu7cRI.gif" alt="exemplo de espaço em branco" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  → Público
&lt;/h3&gt;

&lt;p&gt;Sim, o público é um fator de interface do usuário. Conheça o seu público-alvo, projete para o seu público.&lt;br&gt;
Por exemplo, o tema para YouTube e YouTube kids é diferente.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gSxV-hIx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2ABAti0EUkcZ-rOsro.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gSxV-hIx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2ABAti0EUkcZ-rOsro.gif" alt="exemplo de audiência" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Todo o tema dos sites de jogos é completamente diferente de outros sites.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WEpwN14z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AvjvZ0VLVebEFTtei.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WEpwN14z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://miro.medium.com/max/1400/0%2AvjvZ0VLVebEFTtei.gif" alt="sites de jogos" width="879" height="449"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Experiência do usuário (UX)
&lt;/h1&gt;

&lt;p&gt;Vamos para UX. Até agora tentávamos atrair usuários, agora precisamos impressionar o usuário.&lt;br&gt;
Enquanto a interface do usuário atrai o usuário, a UX deixa o usuário confortável usando seu site.&lt;/p&gt;

&lt;p&gt;Novamente, há cinco fatores que você precisa considerar em UX:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simplicidade&lt;/li&gt;
&lt;li&gt;Consistência&lt;/li&gt;
&lt;li&gt;Padrões de leitura&lt;/li&gt;
&lt;li&gt;Todo o design da plataforma&lt;/li&gt;
&lt;li&gt;Padrões escuros&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  → Simplicidade
&lt;/h3&gt;

&lt;p&gt;Muito conteúdo no mesmo lugar traz dores de cabeça para os usuários, pois eles não conseguem entender onde procurar. Mantenha as coisas simples organizando e reduzindo o conteúdo. Simples é bonito. O site da Amazon tem UI e UX ruins (se você souber o motivo, comente abaixo), mas existem muitos sites de comércio eletrônico com designs simples.&lt;/p&gt;

&lt;h3&gt;
  
  
  → Consistência
&lt;/h3&gt;

&lt;p&gt;A consistência torna seu site fácil de entender e navegar, especialmente se seu site for usado por pessoas que não são da área de tecnologia, crianças ou idosos.&lt;/p&gt;

&lt;h3&gt;
  
  
  → Padrões de Leitura
&lt;/h3&gt;

&lt;p&gt;Os padrões de leitura referem-se a como um usuário visualiza seu site. Existem alguns layouts chamados Z-layout, F-layout etc., que podem ser usados ​​para projetar o layout de seus elementos.&lt;/p&gt;

&lt;h3&gt;
  
  
  → F-Layout
&lt;/h3&gt;

&lt;p&gt;No F-layout o conteúdo importante estará no lado esquerdo.&lt;br&gt;
Veja este exemplo:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8eH-rYI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AINYy2s9Aqx5wVT_H.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8eH-rYI0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AINYy2s9Aqx5wVT_H.jpg" alt="exemplo de F-layout" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  → Z-Layout
&lt;/h3&gt;

&lt;h5&gt;
  
  
  Inclui:
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;Logo&lt;/li&gt;
&lt;li&gt;Botão de inscrição ou similar&lt;/li&gt;
&lt;li&gt;Algum texto&lt;/li&gt;
&lt;li&gt;Botão de chamada para ação&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fWcLZl2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AmhETQ_Q9t5aRa6Lz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fWcLZl2q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/0%2AmhETQ_Q9t5aRa6Lz.jpg" alt="exemplo de Z-layout" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsividade em todas as plataformas
&lt;/h3&gt;

&lt;p&gt;No final das contas, você não cria apenas um site apenas para desktops, ele precisa ser responsivo entre diferentes dispositivos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evite padrões escuros
&lt;/h3&gt;

&lt;p&gt;Padrões escuros referem-se a ações que enganam o usuário em benefício da empresa. Você pode obter benefícios a curto prazo, mas falhará a longo prazo.&lt;/p&gt;





&lt;p&gt;Portanto acredito que, se você seguir esses princípios, poderá criará um ótimo design no seus projetos.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;center&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mV5dP3NG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.pinimg.com/originals/df/39/2f/df392fb90619818047bf4f09e0adbc36.gif" width="800" height="600"&gt;&lt;br&gt;&lt;br&gt;
&lt;/center&gt;
&lt;br&gt;&lt;br&gt;
Que outros princípios você considera importante e de extrema atenção na hora de construir um bom design para web?&lt;br&gt;&lt;br&gt;
Comenta aqui abaixo 👇

</description>
      <category>webdev</category>
      <category>webdesign</category>
      <category>ux</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
