<?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: Isaac Jordão</title>
    <description>The latest articles on DEV Community by Isaac Jordão (@isaacjbs).</description>
    <link>https://dev.to/isaacjbs</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%2F825618%2Fd6da8b24-abd1-4ae3-ad71-e3ffc76ad65c.jpeg</url>
      <title>DEV Community: Isaac Jordão</title>
      <link>https://dev.to/isaacjbs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/isaacjbs"/>
    <language>en</language>
    <item>
      <title>Variáveis CSS</title>
      <dc:creator>Isaac Jordão</dc:creator>
      <pubDate>Wed, 10 Aug 2022 23:02:35 +0000</pubDate>
      <link>https://dev.to/isaacjbs/variaveis-css-5ckb</link>
      <guid>https://dev.to/isaacjbs/variaveis-css-5ckb</guid>
      <description>&lt;p&gt;Quando estamos desenvolvendo e estilizando as páginas, nós conseguimos perceber algumas repetições no arquivo do CSS, e quanto mais o projeto cresce, mais pode ser difícil a manutenção.&lt;/p&gt;

&lt;p&gt;E por ser um problema recorrente, os criadores de pré-processadores CSS como o SASS adicionaram variáveis, mas o uso do SASS, por exemplo, adiciona mais um passo de processamento. Por isso, foram criadas as variáveis CSS e para usá-las é bastante simples.&lt;/p&gt;

&lt;p&gt;Desenvolvi um pequeno projeto apenas para demonstrar como declarar as variáveis e utilizá-las.&lt;/p&gt;

&lt;h2&gt;
  
  
  Estrutura do arquivo HTML
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;body&amp;gt;

  &amp;lt;div class="container"&amp;gt;
    &amp;lt;main class="children"&amp;gt;
      &amp;lt;h2&amp;gt;Variáveis CSS&amp;lt;/h2&amp;gt;
      &amp;lt;blockquote cite="https://developer.mozilla.org/pt-BR/docs/Web/CSS/Using_CSS_custom_properties"&amp;gt;Variáveis CSS são entidades definidas por desenvolvedores, contendo valores específicos para serem reutilizados ao longo do documento. São configuradas usando esta notação (ex: --cor-principal: black; ) e são acessadas usando a funcão var() (ex: color: var(--cor-principal); )&amp;lt;/blockquote&amp;gt;
    &amp;lt;/main&amp;gt;
  &amp;lt;/div&amp;gt;

&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Como declarar as variáveis do arquivo CSS
&lt;/h2&gt;

&lt;p&gt;As variáveis são declaradas na pseudo-classe &lt;em&gt;:root&lt;/em&gt;, como no exemplo abaixo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  --background: #700353;
  --background-alternative: #ffbfb7;
  --text-color: #320d6d;

  --h2-font-size: 3.8rem;
  --blockquote-font-size: 1.6rem;

  --border-radius: 10px;

  --padding: 4rem;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  E como eu posso usar as variáveis declaradas?
&lt;/h2&gt;

&lt;p&gt;Para usar as variáveis é bastante simples, basta colocar var(nome-da-variável) no valor da propriedade.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.children {
  width: 50rem;
  height: 50rem;
  background: var(--background-alternative);

  text-align: center;
  padding: var(--padding);

  color: var(--text-color);

  border-radius: var(--border-radius);
}

.children h2 {
  font-size: var(--h2-font-size);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Preview do projeto
&lt;/h2&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%2F8ttxnkijzubcxlcv4k2e.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%2F8ttxnkijzubcxlcv4k2e.png" alt="Um container na cor rosa, com o título Variáveis CSS e uma breve explicação do que são as variáveis"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O link com o código completo no github é esse &lt;a href="https://github.com/IsaacJBS/css-variables" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Minhas redes:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/isaac-jbs/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/isaacjbs" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fonte: &lt;br&gt;
&lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS/Using_CSS_custom_properties#primeiros_passos_com_vari%C3%A1veis_css_2" rel="noopener noreferrer"&gt;MDN&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero ter ajudado a tornar seu desenvolvimento mais fácil e rápido.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/7DzlajZNY5D0I/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/7DzlajZNY5D0I/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Facade Pattern - React</title>
      <dc:creator>Isaac Jordão</dc:creator>
      <pubDate>Thu, 28 Jul 2022 22:46:33 +0000</pubDate>
      <link>https://dev.to/isaacjbs/facade-pattern-react-96</link>
      <guid>https://dev.to/isaacjbs/facade-pattern-react-96</guid>
      <description>&lt;p&gt;Existem diversos padrões de projetos que ajudam a manter o código limpo e mais legível, e neste post irei mostrar como usar o Facade Pattern para criar uma função que busca os personagens fornecidos pela SWApi.&lt;/p&gt;

&lt;p&gt;O Facade Pattern é um dos padrões mais famosos do GoF (&lt;em&gt;Gang of Four&lt;/em&gt;), e é do tipo estrutural. A maior vantagem dele é deixar a manutenção e uma possível refatoração muito mais simples, tanto do Front End, quanto do Back End.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No exemplo eu utilizei o axios, mas você também pode utilizar o fetch.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuração padrão do axios, adicionando a url da SWApi.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import axios from "axios";

export default axios.create({
  baseURL: 'https://swapi.dev/api/',
  headers: {
    'Content-Type': 'application/json'
  }
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Função getFetch
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import axios from "../api/axios";

export default async function getFetch (url) {
    const response = await axios.get(url)
    return response.data
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Consumo da SWApi
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import getFetch from "./utils/getFetch";

function App() {
  const [characters, setCharacters] = useState([]);
  const [loading, setLoading] = useState(false);

  async function getCharacters() {
    try {
      setLoading(true);
      const { results } = await getFetch("people/");
      setCharacters(results);
    } catch (error) {
      throw new Error(error);
    } finally {
      setLoading(false);
    }
  }

  useEffect(() =&amp;gt; {
    getCharacters();
  }, []);

  return (
    &amp;lt;div className="App"&amp;gt;
      &amp;lt;ul&amp;gt;
        {loading &amp;amp;&amp;amp; &amp;lt;p&amp;gt;Carregando...&amp;lt;/p&amp;gt;}
        {characters &amp;amp;&amp;amp;
          characters.map((character) =&amp;gt; (
            &amp;lt;li key={character.name}&amp;gt;{character.name}&amp;lt;/li&amp;gt;
          ))}
      &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Resultado final no navegador
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qp2SmXaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81k77by2rcvylygheouk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qp2SmXaS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81k77by2rcvylygheouk.png" alt="Image description" width="447" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/IsaacJBS/facade-pattern"&gt;Link do projeto no Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Minhas redes:&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/isaac-jbs/"&gt;Linkedin&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/isaacjbs"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero ter ajudado a tornar seu desenvolvimento mais fácil e rápido.&lt;br&gt;
&lt;a href="https://i.giphy.com/media/7DzlajZNY5D0I/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/7DzlajZNY5D0I/giphy.gif" width="500" height="323"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
