<?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: Sérgio Roberto Sanchez Filho</title>
    <description>The latest articles on DEV Community by Sérgio Roberto Sanchez Filho (@sergiorsanchez).</description>
    <link>https://dev.to/sergiorsanchez</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%2F864458%2F05d86b18-cd36-42ae-8240-c5c309ab9f69.jpeg</url>
      <title>DEV Community: Sérgio Roberto Sanchez Filho</title>
      <link>https://dev.to/sergiorsanchez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergiorsanchez"/>
    <language>en</language>
    <item>
      <title>O começo</title>
      <dc:creator>Sérgio Roberto Sanchez Filho</dc:creator>
      <pubDate>Thu, 19 May 2022 17:45:58 +0000</pubDate>
      <link>https://dev.to/sergiorsanchez/o-comeco-23m3</link>
      <guid>https://dev.to/sergiorsanchez/o-comeco-23m3</guid>
      <description>&lt;p&gt;Foi disponibilizado para nós um layout em Figma, fornecido por &lt;em&gt;Ilana Mallak&lt;/em&gt;, com todas as cores, ícones, imagens, hoovers e fontes que utilizaremos, incluindo cores claras e escuras. Esse projeto terá a versão Mobile e a versão Desktop, por isso a responsividade foi pensada para trazer uma melhor experiência ao usuário. Este projeto é simples, mas abrange muitas tecnologias Full-Stack, para que possamos adquirir o máximo de conhecimento. Vamos aprender &lt;strong&gt;React, React Native, Node, Tailwind CSS, Headless UI, TypeScript, Testes Automatizados, banco de dados&lt;/strong&gt; e muito mais.&lt;/p&gt;

&lt;p&gt;Primeiramente, temos que configurar nosso &lt;em&gt;ambiente de desenvolvimento&lt;/em&gt;, instalando o &lt;strong&gt;Node.js&lt;/strong&gt;, disponível &lt;a href="https://nodejs.org/en/"&gt;aqui&lt;/a&gt;, ou um &lt;em&gt;gerenciador de pacotes&lt;/em&gt;, como &lt;em&gt;Homebrew&lt;/em&gt;. Além disso, usaremos o VSCode.&lt;/p&gt;

&lt;p&gt;Um &lt;strong&gt;SPA&lt;/strong&gt;, ou &lt;em&gt;Aplicação de Página Única&lt;/em&gt; traz uma melhor experiência ao usuário através da sensação de navegar entre as páginas muito mais rápido. Os aplicativos SPA são sempre executados no lado do cliente – neste caso, o navegador. Back-end e Front-end são separados, então o back-end recebe requisição e renderiza de acordo com o front-end do dispositivo. Quando novas páginas precisam ser carregadas, não há necessidade de uma nova solicitação ao servidor: essas páginas são carregadas por meio de rotinas JavaScript, eliminando a necessidade de solicitações ao servidor para obter o novo conteúdo a ser renderizado: desde o primeiro carregamento de da aplicação, toda interação para carregamento de conteúdo acontece exclusivamente no lado do cliente por meio de JavaScript. Como exemplo de SPA temos &lt;em&gt;Twitter, Gmail, Google Maps e Trello.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WzwxKDkr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3jfmhnn5kvwkvocbamp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WzwxKDkr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3jfmhnn5kvwkvocbamp.png" alt="Image de um esquema SPA, em que o backend e o frontend são separados" width="822" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSR&lt;/strong&gt;, ou &lt;em&gt;Renderização do lado do Servidor&lt;/em&gt;, reverte o processo de renderização, trazendo parte do esforço de renderização do aplicativo SPA para o servidor, semelhante ao carregamento tradicional. O SSR pode fornecer aos usuários um carregamento de aplicativos mais eficiente, pois parte da renderização é feita no servidor. O back-end e o front-end empilham juntos. Como exemplo temos &lt;em&gt;Wordpress, Magenta, GitHub&lt;/em&gt; e outros.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b591_yEB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ovfvkk4iq4qxjczi9gq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b591_yEB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ovfvkk4iq4qxjczi9gq4.png" alt="Imagem de um esquema SSR, em que o backend e o frontend são juntos no servidor" width="382" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Então vamos começar!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No terminal digitamos &lt;code&gt;npm create vite@latest&lt;/code&gt;, escolhemos o nome web para o projeto, depois escolhemos o Framework que iremos utilizar, caso selecionemos &lt;strong&gt;React&lt;/strong&gt; e &lt;strong&gt;React with TypeScript&lt;/strong&gt;. Assim, o projeto está criado. Basta executar o código. para abrir o VSCode.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;Vite&lt;/em&gt; é uma ferramenta que faz com que nosso navegador entenda o JavaScript mais moderno. Depois disso, executamos o &lt;code&gt;npm install&lt;/code&gt; para instalar as dependências do nosso projeto. Fizemos uma limpeza nos arquivos criados em nosso diretório, e rodamos &lt;code&gt;npm run dev&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Antes de prosseguirmos, temos que saber duas coisas sobre o &lt;em&gt;React&lt;/em&gt;: &lt;strong&gt;componentes e propriedades&lt;/strong&gt;. &lt;strong&gt;Componentes&lt;/strong&gt; é uma &lt;em&gt;função&lt;/em&gt; que retorna &lt;em&gt;HTML&lt;/em&gt;. Ele deve ter uma &lt;em&gt;primeira letra maiúscula&lt;/em&gt; para não retornar uma &lt;em&gt;tag HTML&lt;/em&gt;. &lt;strong&gt;Propriedades&lt;/strong&gt; é como um &lt;em&gt;atributo&lt;/em&gt; do componente.&lt;/p&gt;

&lt;p&gt;Depois disso, vamos configurar nosso aplicativo com &lt;strong&gt;Tailwind CSS&lt;/strong&gt;. É um framework CSS utilitário com classes como &lt;em&gt;flex, pt-4, text-center&lt;/em&gt; e &lt;em&gt;rotate-90 _que podem ser compostas para construir qualquer design, diretamente em nossa marcação. Ele nos traz muita produtividade, e para instalá-lo entre no &lt;a href="https://tailwindcss.com/"&gt;site oficial&lt;/a&gt; e instale usando _PostCSS&lt;/em&gt;. Pode ser que nosso código não fique tão bonito, mas ganhamos muito em produtividade. Mas podemos criar classes da forma tradicional do CSS também, basta colocar @apply e todas as propriedades dessa classe no arquivo .css.&lt;/p&gt;

&lt;p&gt;Vamos começar a fazer a interface móvel. Essa técnica é chamada de &lt;em&gt;Mobile first&lt;/em&gt;. Mobile first é um projeto que cria projetos da web e sites primeiro em dispositivos móveis, e depois os adapta para desktop e outras plataformas, e traz algumas vantagens como melhor classificação no Google, melhor experiência do usuário, aumento da credibilidade da marca, otimização de carregamento de página, entre muitos outros.&lt;/p&gt;

&lt;p&gt;Criamos uma pasta na &lt;em&gt;pasta src&lt;/em&gt;, nomeada &lt;strong&gt;componentes&lt;/strong&gt; e, em seguida, um arquivo &lt;em&gt;.tsx&lt;/em&gt; chamado &lt;em&gt;Widget&lt;/em&gt;. Exporte a função no arquivo &lt;em&gt;App.tsx&lt;/em&gt;. Vamos criar um &lt;em&gt;Trigger Button&lt;/em&gt; para dar &lt;em&gt;Feedback&lt;/em&gt;, e os ícones podem ser encontrados no site &lt;a href="https://phosphoricons.com/"&gt;Phosphor icons&lt;/a&gt;, e eles têm integração direta com o React, então podemos instalar rodando &lt;code&gt;npm install phosphor-react&lt;/code&gt; no terminal do VSCode. Dessa forma podemos &lt;strong&gt;importar diretamente&lt;/strong&gt; para o nosso projeto utilizando o ícone como um componente, com diversas &lt;em&gt;propriedades&lt;/em&gt;, como peso, tamanho entre outras.&lt;/p&gt;

&lt;p&gt;Vamos começar passando uma aula para ele. É muito importante para o nosso projeto conhecer o conceito de &lt;strong&gt;unidades rem&lt;/strong&gt; em CSS, que é uma unidade de tamanho relativo com excelente suporte a navegadores. &lt;strong&gt;1rem&lt;/strong&gt; é igual ao tamanho da fonte do elemento &lt;em&gt;html&lt;/em&gt;, que, para a maioria dos navegadores, tem um valor padrão de &lt;strong&gt;16px&lt;/strong&gt;. O uso de rem pode ajudar a garantir a consistência do tamanho da fonte e do espaçamento em toda a nossa &lt;em&gt;interface do usuário (UI)&lt;/em&gt;. Com isso em mente, comece a codificar o design deste botão, e é impressionante as facilidades que o Tailwind nos traz. Com algumas linhas de código finalizamos a funcionalidade do primeiro componente. Este botão é usado para &lt;em&gt;abrir/fechar&lt;/em&gt; algo, então esse algo vai mudar com uma ação, e isso se chama &lt;strong&gt;Estado no React&lt;/strong&gt;, que é uma &lt;em&gt;variável&lt;/em&gt; como qualquer outra em JS, mas o React olha essa variável e &lt;strong&gt;toda vez&lt;/strong&gt; que ela tem seu &lt;strong&gt;valor alterado&lt;/strong&gt; ele &lt;strong&gt;irá criar&lt;/strong&gt; a &lt;strong&gt;interface&lt;/strong&gt; deste componente &lt;strong&gt;novamente&lt;/strong&gt;, com este novo valor.&lt;/p&gt;

&lt;p&gt;É muito importante para o nosso projeto pensar em &lt;strong&gt;acessibilidade&lt;/strong&gt;, e isso é mais fácil de pensar desde o início do projeto, e serve de &lt;em&gt;auxílio&lt;/em&gt; para que &lt;em&gt;sites&lt;/em&gt;, &lt;em&gt;ferramentas&lt;/em&gt; e &lt;em&gt;tecnologias&lt;/em&gt; sejam &lt;em&gt;pensadas&lt;/em&gt; e &lt;em&gt;desenvolvidas&lt;/em&gt; para que &lt;em&gt;pessoas com ou sem deficiência&lt;/em&gt; possam usar, navegar, interagir e &lt;em&gt;compreender&lt;/em&gt; o &lt;em&gt;conteúdo&lt;/em&gt;, com &lt;strong&gt;autonomia&lt;/strong&gt;. No nosso caso, podemos navegar pela página usando o teclado, mas ele não nos avisa quando um novo elemento aparece na tela. Para corrigir isso,&lt;br&gt;
podemos usar as tags &lt;strong&gt;ARIA&lt;/strong&gt;, &lt;em&gt;Aplicativos avançados de Internet acessíveis&lt;/em&gt;, que definem formas de tornar o conteúdo e as aplicações web mais acessíveis a pessoas com deficiência. Mas temos várias bibliotecas em React que facilitam nosso trabalho, como o &lt;strong&gt;reakit&lt;/strong&gt;, feito por um brasileiro, que será chamado de &lt;strong&gt;ariakit&lt;/strong&gt;; &lt;strong&gt;radix-ui&lt;/strong&gt;, também é uma biblioteca de acessibilidade, e &lt;strong&gt;headlessui&lt;/strong&gt;, que usaremos em nosso projeto, pois ela foi projetada para se integrar lindamente com &lt;em&gt;Tailwind CSS&lt;/em&gt;. Execute &lt;code&gt;npm install @headlessui/react&lt;/code&gt; no terminal para instalar e importe o &lt;em&gt;Popover&lt;/em&gt; em nosso &lt;em&gt;Widget.tsx&lt;/em&gt;. O mais legal é que o popover controla toda essa parte do estado, então não precisamos definir uma função para falar quando ela estiver aberta/fechada. Fazendo as modificações necessárias, conforme documentação, nosso projeto passou a ter diversas acessibilidades ARIA.&lt;/p&gt;

&lt;p&gt;E assim concluímos a primeira aula deste evento, na qual aprendemos a configurar o &lt;strong&gt;ambiente de desenvolvimento&lt;/strong&gt;, como funcionam um &lt;strong&gt;SPA&lt;/strong&gt; e um &lt;strong&gt;SSR&lt;/strong&gt;, &lt;strong&gt;conceitos&lt;/strong&gt; importantes de React, usar e configurar &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, &lt;strong&gt;rem&lt;/strong&gt;, usar &lt;strong&gt;React States&lt;/strong&gt;, conceitos de &lt;strong&gt;acessibilidade&lt;/strong&gt;, uso de &lt;strong&gt;diferentes bibliotecas&lt;/strong&gt; e muito mais.&lt;/p&gt;

</description>
      <category>node</category>
      <category>tailwindcss</category>
      <category>typescript</category>
      <category>react</category>
    </item>
    <item>
      <title>The begining</title>
      <dc:creator>Sérgio Roberto Sanchez Filho</dc:creator>
      <pubDate>Thu, 19 May 2022 16:15:18 +0000</pubDate>
      <link>https://dev.to/sergiorsanchez/the-begining-4oc8</link>
      <guid>https://dev.to/sergiorsanchez/the-begining-4oc8</guid>
      <description>&lt;p&gt;Was made available to us a layout in Figma, provided by &lt;em&gt;Ilana Mallak&lt;/em&gt;, with all the colors, icons, images, hoovers and fonts we will use, including light and dark mode colors. That project will have the Mobile version and the Desktop version, so the responsiveness was thought to bring a better experience to the user. This project is simple, but it covers many Full-Stack technologies, so we can acquire the most knowledge. We will learn &lt;strong&gt;React, React Native, Node, Tailwind CSS, Headless UI, TypeScript, Automated Tests, database&lt;/strong&gt; and much more.&lt;/p&gt;

&lt;p&gt;First of all, we have to configure our &lt;em&gt;development environment&lt;/em&gt;, installing &lt;strong&gt;Node.js&lt;/strong&gt;, available &lt;a href="https://nodejs.org/en/"&gt;here&lt;/a&gt;, or a package manager, as &lt;em&gt;Homebrew&lt;/em&gt;. Besides that, we will use VSCode.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;SPA&lt;/strong&gt;, or &lt;em&gt;Single Page Application&lt;/em&gt; brings a better user experience through the feeling of navigating between pages much faster. SPA applications are always run on the client side – in this case, the browser. Back-end and Front-end are separate, so the back-end receive requisition and renders according to the device front-end. When new pages need to be loaded, there is no need for a new request to the server: these pages are loaded through JavaScript routines, eliminating the need for requests to the server to obtain the new content to be rendered: from the first load of the application, all interaction for loading content happens exclusively on the client side through JavaScript. As example of SPA we have &lt;em&gt;Twitter, Gmail, Google Maps and Trello.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FoEYLQsw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7337if9y5vg7qds8zc6r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FoEYLQsw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7337if9y5vg7qds8zc6r.png" alt="Image of SPA scheme, which uses separate backend and frontend" width="822" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SSR&lt;/strong&gt;, or &lt;em&gt;Server Side Rendering&lt;/em&gt;, reverses the rendering process, bringing some of the SPA application rendering effort to the server, similar to traditional loading. SSR can provide users with more efficient application loading as part of the rendering is done on the server. Back-end and Front-end stacks together. As example we have &lt;em&gt;Wordpress, Magenta, GitHub&lt;/em&gt; and others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0teBoKpZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fhepiauv4vfgzamo58h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0teBoKpZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fhepiauv4vfgzamo58h.png" alt="Image of SPA scheme, which uses backend and frontend together" width="382" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So lets start!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In terminal we digit &lt;code&gt;npm create vite@latest&lt;/code&gt;, choose name &lt;em&gt;web&lt;/em&gt; to the project, then choose the Framework that we will use, in case we select &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;React with TypeScript&lt;/strong&gt;. So, the project is created. Just run &lt;em&gt;code .&lt;/em&gt; to open VSCode.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Vite&lt;/em&gt; is a tool that makes our browser understand the most modern JavaScript. After that, we run &lt;code&gt;npm install&lt;/code&gt; to install the dependencies of our project. We made a clean in the files created in our directory, and run &lt;code&gt;npm run dev&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Before we proceed, we have to know two things about &lt;em&gt;React&lt;/em&gt;: &lt;strong&gt;components and properties&lt;/strong&gt;. &lt;strong&gt;Components&lt;/strong&gt; is a &lt;em&gt;function&lt;/em&gt; that returns &lt;em&gt;HTML&lt;/em&gt;. It must have a &lt;em&gt;capital first letter&lt;/em&gt; capitalized, not to return a &lt;em&gt;HTML tag&lt;/em&gt;. &lt;strong&gt;Properties&lt;/strong&gt; is like a &lt;em&gt;atribute&lt;/em&gt; of the component.&lt;/p&gt;

&lt;p&gt;After that, we will configure our app with &lt;strong&gt;Tailwind CSS&lt;/strong&gt;. It is a utility-first CSS framework packed with classes like &lt;em&gt;flex, pt-4, text-center&lt;/em&gt; and &lt;em&gt;rotate-90&lt;/em&gt; that can be composed to build any design, directly in our markup. It  bring us a lot of productivity, and to install it enter in the official &lt;a href="https://tailwindcss.com/docs/installation"&gt;site&lt;/a&gt; and install using &lt;em&gt;PostCSS&lt;/em&gt;. It may be that our code doesn't look so pretty, but we gained a lot in productivity. But we can create classes in the tradicional way of the CSS too, Just put @apply and all properties of that class in the .css file.&lt;/p&gt;

&lt;p&gt;We will begin making the mobile interface. This technique is called &lt;em&gt;Mobile first&lt;/em&gt;. Mobile first is a project that creates web projects and websites first on mobile devices, and then adapts them to desktop and other platforms, and it brings some vantages like better ranking on Google, best user experience, increase in brand credibility, page loading optimization, among many others.&lt;/p&gt;

&lt;p&gt;We create a folder in the &lt;em&gt;src folder&lt;/em&gt;, named &lt;strong&gt;components&lt;/strong&gt;, and then a &lt;em&gt;.tsx&lt;/em&gt; file named &lt;em&gt;Widget&lt;/em&gt;. Export the function in the &lt;em&gt;App.tsx&lt;/em&gt; file. We will create a &lt;em&gt;Trigger Button&lt;/em&gt; for &lt;em&gt;Feedback&lt;/em&gt;, and the icons can be found in &lt;a href="//phosphoricons.com/"&gt;Phosphor icons&lt;/a&gt;, and they have direct integration with React, so we can install running &lt;code&gt;npm install phosphor-react&lt;/code&gt; in the terminal of VSCode. That way we can &lt;strong&gt;import directly&lt;/strong&gt; into our project using the icon as a &lt;em&gt;component&lt;/em&gt;, with various &lt;em&gt;properties&lt;/em&gt;, like weight, size among others.&lt;/p&gt;

&lt;p&gt;Let's start by passing him a class. Its very important for our project to know about the concept of &lt;strong&gt;rem units&lt;/strong&gt; in CSS, which is a relative sizing unit whit excellent browser support. &lt;strong&gt;1rem&lt;/strong&gt; equals the font size of the &lt;em&gt;html&lt;/em&gt; element, which, for most browsers, has a default value of &lt;strong&gt;16px&lt;/strong&gt;. Using rem can help ensure consistency of font size and spacing throughout our &lt;em&gt;user interface (UI)&lt;/em&gt;. With that in mind, start to code the design of this button, and it is impressive the facilities that Tailwind brings us. With a few lines of code we finish the functionality of the first component. This button is used to &lt;em&gt;open/close&lt;/em&gt; something, so that thing will change with an &lt;em&gt;action&lt;/em&gt;, and this is called &lt;strong&gt;State in React&lt;/strong&gt;, which is a &lt;em&gt;variable&lt;/em&gt; like any other in JS, but React looks at this variable and &lt;strong&gt;every time&lt;/strong&gt; it has its &lt;strong&gt;value changed&lt;/strong&gt; it &lt;strong&gt;will create&lt;/strong&gt; the &lt;strong&gt;interface&lt;/strong&gt; of this component &lt;strong&gt;again&lt;/strong&gt;, with this new value.&lt;/p&gt;

&lt;p&gt;It is very important for our project to think about accessibility, and this is easier to think about from the beginning of the project, and it serves as an aid for websites, tools and technologies to be designed and developed so that people with or without disabilities can use, navigate, interact and understand the content, with autonomy. In our case, we can navigate the page using the keyboard, but it doesn't warn us when a new element appears on the screen. To fix this,&lt;br&gt;
we can use the tags &lt;strong&gt;ARIA&lt;/strong&gt;, &lt;em&gt;Accessible Rich Internet Applications&lt;/em&gt;, that define ways to make web content and applications more accessible to people with disabilities. But we have several libraries in React that make our work easier, like &lt;strong&gt;reakit&lt;/strong&gt;, made by a brazilian, which will be called &lt;strong&gt;ariakit&lt;/strong&gt;; &lt;strong&gt;radix-ui&lt;/strong&gt;, it is also an accessibility library, and &lt;strong&gt;headlessui&lt;/strong&gt;, that we will use in our project, because she is designed to integrate beautifully with Tailwind CSS. Run &lt;code&gt;npm install @headlessui/react&lt;/code&gt; in terminal o install and import &lt;em&gt;Popover&lt;/em&gt; in our &lt;em&gt;Widget.tsx&lt;/em&gt;. The coolest thing is that the popover controls all this part of state, so we don't need to define a function to speak when it's open/closed. Making the necessary modifications, as per the documentation, our project now has several ARIA accessibility.&lt;/p&gt;

&lt;p&gt;And so we concluded the first class of this event, in which we learned to configure the &lt;strong&gt;development environment&lt;/strong&gt;, how a &lt;strong&gt;SPA&lt;/strong&gt; and an &lt;strong&gt;SSR&lt;/strong&gt; work, important &lt;strong&gt;concepts of React&lt;/strong&gt;, use and configure &lt;strong&gt;Tailwind CSS&lt;/strong&gt;, &lt;strong&gt;rem&lt;/strong&gt;, use &lt;strong&gt;React States&lt;/strong&gt;, concepts of &lt;strong&gt;accessibility&lt;/strong&gt;, use of &lt;strong&gt;different libraries&lt;/strong&gt; and much more.&lt;/p&gt;

</description>
      <category>node</category>
      <category>tailwindcss</category>
      <category>typescript</category>
      <category>react</category>
    </item>
    <item>
      <title>New start</title>
      <dc:creator>Sérgio Roberto Sanchez Filho</dc:creator>
      <pubDate>Wed, 18 May 2022 18:45:05 +0000</pubDate>
      <link>https://dev.to/sergiorsanchez/new-start-582k</link>
      <guid>https://dev.to/sergiorsanchez/new-start-582k</guid>
      <description>&lt;p&gt;Today I will start &lt;strong&gt;two new projects&lt;/strong&gt;. &lt;strong&gt;First&lt;/strong&gt; is &lt;strong&gt;this one here&lt;/strong&gt;, start registering my evolution as a developer.&lt;br&gt;
Some months ago I started a course of Python and Web Developing using Django Rest Framework, and that was awesome. I learn soo much and I noticed that I want to join this area.&lt;br&gt;
A few weeks ago I participate in an event of Front-End, call &lt;br&gt;
"Next Level Week", introduced by &lt;strong&gt;Rocketseat&lt;/strong&gt;, and I was blown away. I made the &lt;em&gt;Origin&lt;/em&gt; trail, and that wasn't the first time I have contact with the Front-End stack, but was the first I made a project till the end, and im very proud of what I made.&lt;br&gt;
Soo I decided to start my &lt;strong&gt;Second Project&lt;/strong&gt;. In the same event, i will join the &lt;em&gt;Impulse&lt;/em&gt; trail, and document some of this project. The project is a &lt;strong&gt;Feedback Widget&lt;/strong&gt;, or &lt;strong&gt;FeedGet&lt;/strong&gt; as the tutor said. So let's get it started!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>css</category>
      <category>html</category>
    </item>
  </channel>
</rss>
