<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Design &#8211; Velho Bit</title>
	<atom:link href="https://velhobit.com.br/design/feed" rel="self" type="application/rss+xml" />
	<link>https://velhobit.com.br</link>
	<description>Artigos, Notícias e Tutoriais sobre Web Design, Design Gráfico, Desenvolvimento e Programação Web... e um tico de games</description>
	<lastBuildDate>Sun, 18 May 2025 19:39:30 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://velhobit.com.br/wp-content/uploads/2024/10/cropped-minieu-32x32.png</url>
	<title>Design &#8211; Velho Bit</title>
	<link>https://velhobit.com.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Como centralizar verticalmente elementos HTML com CSS</title>
		<link>https://velhobit.com.br/tutoriais/como-centralizar-verticalmente-elementos-html-com-css.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Wed, 02 Jun 2021 22:40:30 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ajustes]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[diagramação]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=2151</guid>

					<description><![CDATA[Veja 3 técnicas diferentes de como alinhar elementos verticalmente usando CSS e como elas podem ser usadas.]]></description>
										<content:encoded><![CDATA[
<p>Uma das coisas mais comuns, mas ao mesmo tempo mais chatas de se fazer no CSS é alinhar verticalmente elementos em tela. Existem várias formas de fazer isso. Neste post, vou elencar as minhas formas favoritas de fazer isso.</p>



<h2 class="wp-block-heading">Alinhamento com Flexbox</h2>



<p>Flex é uma propriedade incrível do CSS que permite organizar elementos. Se outrora tínhamos que fazer inúmeras gambiarras com float, o flex nos permite controlar o comportamentos dos filhos de um container. Para centralizar verticalmente um objeto, podemos usar a direção de coluna, em seu container pai.</p>



<script async src="//jsfiddle.net/velhobit/q1xsybp9/embed/result,html,css/"></script>



<h2 class="wp-block-heading">Alinhamento com position</h2>



<p>Com um pouco de matemática, conseguimos fazer um alinhamento vertical com o position absolute. Porém, é importante lembrar que o objeto será flutuante e que seu pai, necessariamente, precisa ser um position relative. O problema de usar esse tipo de alinhamento é que o conteúdo da posição precisa ser fixo. Felizmente, hoje, conseguimos fazer cálculos com variáveis de CSS, o que facilita a forma de implementarmos essa técnica. A vantagem dessa técnica é poder usar, justamente, em ambientes flutuantes que se sobreponham. Porém, caso você não precise que ele se alinhe ao pai, mas à viewport, você pode usar também o position como fixed.</p>



<iframe width="100%" height="500" src="//jsfiddle.net/velhobit/qd8fn6r9/1/embedded/result,html,css/" allowfullscreen="allowfullscreen" allowpaymentrequest frameborder="0"></iframe>



<h2 class="wp-block-heading">Alinhamento com Grid</h2>



<p>Outra forma moderna de alinhar verticalmente é através do uso de grids. A vantagem de usar grids é que o tamanho do conteúdo do elemento alinhado corresponderá ao tamanho da grid que se deseja utilizar. Ou seja, é adaptável de acordo com a viewport, e não referente ao seu conteúdo. Para isso, basta definirmos a quantidade de colunas e linhas que desejamos e estabelecemos onde o objeto alinhado vai iniciar e terminar.</p>



<iframe width="100%" height="400" src="//jsfiddle.net/velhobit/r869swqz/embedded/result,html,css/" allowfullscreen="allowfullscreen" allowpaymentrequest frameborder="0"></iframe>



<h2 class="wp-block-heading">Exemplo de uso (Modal Alinhado ao Centro)</h2>



<p>Para mostrar como pode ser usado os alinhamentos, que tal criarmos um simples modal alinhado ao centro da tela? </p>



<p>Um modal é composto por uma cortina que reveste o conteúdo original, seguido de um painel com alguma informação dentro. É convenção de que os modals carreguem essas informações no centro da tela, afim de que a informação fique direcionada e encapsulada, levando, assim, o usuário à uma atenção maior àquela informação. Ou seja, isolar e destacar. O exemplo abaixo foi feito usando a primeira estratégia de alinhamento vertical aqui apresentada, pois, desta forma, o tamanho do modal que vai ser a referência para a centralização. Alguns efeitos foram adicionados para ilustrar melhor.</p>



<iframe width="100%" height="500" src="//jsfiddle.net/velhobit/pbgmvu2x/embedded/result,css,html,js/" allowfullscreen="allowfullscreen" allowpaymentrequest frameborder="0"></iframe>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tendência: Pantone define Illuminating e Ultimate Grey como cores do ano de 2021</title>
		<link>https://velhobit.com.br/design/tendencia-pantone-define-illuminating-e-ultimate-grey-como-cores-do-ano-de-2021.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 11 Dec 2020 20:49:52 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[cores]]></category>
		<category><![CDATA[iluminação]]></category>
		<category><![CDATA[impressão]]></category>
		<category><![CDATA[impressos]]></category>
		<category><![CDATA[paleta]]></category>
		<category><![CDATA[pantone]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=2060</guid>

					<description><![CDATA[A Pantone sugere que as cores de 2021 deverão representar o casamento entre otimismo e força.]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://velhobit.com.br/wp-content/uploads/2020/12/4d56f05b-4a6f-4d91-b4de-9ea61ae47ddb-COTY21_HERO_IMAGE_30x20_1-1024x576.jpg" alt="Cores do ano da Paontone" class="wp-image-2067" srcset="https://velhobit.com.br/wp-content/uploads/2020/12/4d56f05b-4a6f-4d91-b4de-9ea61ae47ddb-COTY21_HERO_IMAGE_30x20_1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2020/12/4d56f05b-4a6f-4d91-b4de-9ea61ae47ddb-COTY21_HERO_IMAGE_30x20_1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2020/12/4d56f05b-4a6f-4d91-b4de-9ea61ae47ddb-COTY21_HERO_IMAGE_30x20_1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2020/12/4d56f05b-4a6f-4d91-b4de-9ea61ae47ddb-COTY21_HERO_IMAGE_30x20_1-1536x864.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Todo ano a Pantone, maior empresa do mundo no ramo de sistemas de cores, elege as cores que serão usadas para representar o ano seguinte.</p>



<p>A ideia da empresa é, principalmente, criar um catálogo a fim de representar as tendências para o ano seguinte. Catálogo este criado pela The Pantone Color Institute, que busca utilizar de padrões e tons que são significativamente mais globais e genéricos em termos culturais, sobre o que se esperar do ano seguinte.</p>



<p>No ano de 2019, definiu-se que a cor que movimentaria o ano de 2020 foi o Classic Blue (19-4052):</p>



<div class="videoWrapper"><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/m8tnsF8f7Y4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="700" height="140" src="https://velhobit.com.br/wp-content/uploads/2020/12/pantone-paleta-2020.jpeg" alt="" class="wp-image-2061" srcset="https://velhobit.com.br/wp-content/uploads/2020/12/pantone-paleta-2020.jpeg 700w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-paleta-2020-400x80.jpeg 400w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-paleta-2020-600x120.jpeg 600w" sizes="auto, (max-width: 700px) 100vw, 700px" /></figure>



<h2 class="wp-block-heading">As Cores de 2021: <span style="background-color: rgb(245,233,77); color: rgb(147,149,151);">Otimismo</span> e <span style="background-color: rgb(147,149,151); color: rgb(245,233,77);">Força</span></h2>



<p>Diante da maior crise sanitária da era moderna, a Pantone sugere que as cores de 2021 deverão representar o casamento entre otimismo e força, e escolheu como suas representantes as cores PANTONE 13-0647&nbsp;Illuminating (similar ao amarelo canário) e o PANTONE 17-5104&nbsp; Ultimate Gray (similar ao cinza elefante).</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="764" height="510" src="https://velhobit.com.br/wp-content/uploads/2020/12/colors.png" alt="Cores do Ano Pantone" class="wp-image-2070" srcset="https://velhobit.com.br/wp-content/uploads/2020/12/colors.png 764w, https://velhobit.com.br/wp-content/uploads/2020/12/colors-400x267.png 400w, https://velhobit.com.br/wp-content/uploads/2020/12/colors-600x401.png 600w" sizes="auto, (max-width: 764px) 100vw, 764px" /></figure>



<p>“Ao combinar PANTONE 17-5104 Ultimate Grey e PANTONE 13-0647 Illuminating para ser nossa cor Pantone do ano em 2021, destacamos como dois elementos diferentes se unem para expressar uma mensagem de força e esperança, que é ao mesmo tempo duradoura e edificante, transmitindo a ideia de que não se trata de uma cor ou de uma pessoa, é sobre vários”. —  disse Laurie Pressman, vice presidente da Pantone Color Institute. — &#8220;Elas comunicam uma compreensão mais profunda da importância dos relacionamentos e da necessidade que temos uns dos outros. A união dessas duas cores diferentes mostra a força e o otimismo que resultam da junção de diferentes ingredientes&#8221;.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1400" height="790" src="https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU.jpg" alt="Exemplos cores pantone" class="wp-image-2071" srcset="https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU.jpg 1400w, https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU-400x226.jpg 400w, https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU-1024x578.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU-768x433.jpg 768w, https://velhobit.com.br/wp-content/uploads/2020/12/LDE7RKM3NZFX5DMQWOIYWKDZKU-600x339.jpg 600w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></figure>



<p>É importante salientar que Pantone é uma empresa privada e seus sistemas são proprietários, então você não deverá encontrar atualizações em paletas automatizadas em aplicativos como GIMP e Inkscape, mas nada impede que você crie suas próprias paletas manualmente, replicando as cores, ou até encontre algumas na internet feitas por terceiros.</p>



<p>Todavia, as cores e assets já estão disponíveis em serviços como o Adobe Stock e Freepik Premium:</p>



<div class="videoWrapper"><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/BU6Ve0RK9Us" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe></div>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores.jpeg" alt="" class="wp-image-2072" srcset="https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores.jpeg 1024w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores-400x400.jpeg 400w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores-500x500.jpeg 500w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores-768x768.jpeg 768w, https://velhobit.com.br/wp-content/uploads/2020/12/pantone-com-outras-cores-600x600.jpeg 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Algumas variações de paletas usando as cores Pantone 2021 já estão disponíveis publicamente no <a href="https://color.adobe.com/pt/search?q=2021%20Pantone" target="_blank" rel="noreferrer noopener">Adobe Color.</a> Dessa forma, já é possível usar as cores em novos projetos através da Creative Cloud, no Adobe XD, Illustrator, Photoshop e InDesign, além de plataformas para projetos de mídias sociais e vídeos, nos dispositivos móveis.</p>



<h2 class="wp-block-heading">Brasil</h2>



<p>No Brasil, através do Twitter, algumas pessoas tem manifestado reações sobre a decisão da Pantone.</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="500" data-dnt="true"><p lang="pt" dir="ltr">Essa é a verdadeira pantone do Brasil <a href="https://twitter.com/hashtag/Pantone2021?src=hash&amp;ref_src=twsrc%5Etfw">#Pantone2021</a> <a href="https://t.co/owm3DuiXb3">pic.twitter.com/owm3DuiXb3</a></p>&mdash; Greengo Dictionary <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f99c.png" alt="🦜" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (@greengodict) <a href="https://twitter.com/greengodict/status/1337066402855981068?ref_src=twsrc%5Etfw">December 10, 2020</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
https://twitter.com/priguicil4/status/1337088108756602880
</div></figure>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="500" data-dnt="true"><p lang="pt" dir="ltr"><a href="https://twitter.com/metrosp_oficial?ref_src=twsrc%5Etfw">@metrosp_oficial</a> <a href="https://twitter.com/Via_Quatro?ref_src=twsrc%5Etfw">@Via_Quatro</a> Linha 4 amarela: esse é seu momento <a href="https://twitter.com/hashtag/Pantone2021?src=hash&amp;ref_src=twsrc%5Etfw">#Pantone2021</a> <a href="https://twitter.com/hashtag/Pantone?src=hash&amp;ref_src=twsrc%5Etfw">#Pantone</a> <a href="https://t.co/uEbtjOiNj4">pic.twitter.com/uEbtjOiNj4</a></p>&mdash; Millenial Esgotado <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f1f7-1f1fa.png" alt="🇷🇺" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f1f5-1f1f8.png" alt="🇵🇸" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (@mazierismo) <a href="https://twitter.com/mazierismo/status/1337494132567273472?ref_src=twsrc%5Etfw">December 11, 2020</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="500" data-dnt="true"><p lang="pt" dir="ltr">As Cores do Ano 2021 da Pantone. <a href="https://t.co/4ygKcuohvV">pic.twitter.com/4ygKcuohvV</a></p>&mdash; Gil Marcel (@gilmarcel) <a href="https://twitter.com/gilmarcel/status/1337071724731518976?ref_src=twsrc%5Etfw">December 10, 2020</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
https://twitter.com/threuytt/status/1336866930330906625
</div></figure>



<p>Com informações do da Adobe, Dezeen, Freepik e Pantone.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sistemas de Design: Padronização de Sistemas</title>
		<link>https://velhobit.com.br/design/o-que-e-sistemas-de-design.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sun, 22 Dec 2019 22:04:35 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[aplicações]]></category>
		<category><![CDATA[aplicativos]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design ui]]></category>
		<category><![CDATA[sistemas]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1986</guid>

					<description><![CDATA[Sistemas de design são documentações que organizam conceitos, estilos, formas, cores e assets de diferentes serviços e empresas de tecnologia.]]></description>
										<content:encoded><![CDATA[
<p><a rel="noreferrer noopener" aria-label="Design é projeto (abre numa nova aba)" href="https://velhobit.com.br/design/o-que-e-design.html" target="_blank">Design é projeto</a>. E, como todo projeto, ele deve ser documentado, possuindo descrições, informações de uso e instruções em geral. É exatamente isso que são Sistemas de Design.</p>



<p>Sistemas de Design são documentações, online ou físicas, que descrevem a padronização e uso de elementos de um projeto, com o objetivo de que ele possa ser usado em diferentes aplicações, mantendo uma identidade compartilhada. Essa identidade pode ser referenciada a um projeto, linha, segmento ou empresa. <strong>São usados elementos como formas, grades, tipografia, <em>assets</em>, iconografia, recomendações de uso, dentre outros. Algo muito semelhante ao que o design gráfico já está acostumado ao criar um Manual de Identidade Visua</strong>l.</p>



<p>Um exemplo comum, do dia a dia dos usuários de computador, é o Microsoft Office. Trata-se de um conjunto de aplicativos que, por serem da mesma linha, precisam seguir a mesma identidade. Para que os desenvolvedores possam trabalhar com esse padrão, um sistema de design certamente foi desenvolvido para que a equipe de desenvolvimento possa trabalhar de forma coerente.</p>



<p>O Sistema de Design garante ao usuário uma fluidez no uso das aplicações e reconhecimento das propriedades do software. Facilitando, dessa forma, não só a identificação, como ajudando o usuário a pressupor determinados recursos ou localizações de ferramentas.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Sistemas de Design e Revolta com a Microsoft" width="500" height="281" src="https://www.youtube.com/embed/E6D3LUR9_HM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption>Assista o vídeo para complementar a leitura</figcaption></figure>



<h2 class="wp-block-heading">Experiência Compartilhada</h2>



<p>Grandes empresas de tecnologia desenvolvem seus próprios sistemas de design para que desenvolvedores terceiros possa criar experiências mais coesas e confortáveis para o usuário. Seguir esses sistemas pode ser requerimento ou uma simples recomendação, dependendo da loja e sistema operacional que precisar aprovar.</p>



<p>Aplicativos, mobile e desktop, são os mais comuns a receberem influencias direta dos sistemas de design de sistemas operacionais que, recomenda-se, devem ser mesclados aos sistemas da própria empresa. Para esses casos temos como exemplo:</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" aria-label=" (abre numa nova aba)" href="https://developer.apple.com/design/human-interface-guidelines/" target="_blank">Apple HIG</a></li><li><a rel="noreferrer noopener" aria-label=" (abre numa nova aba)" href="https://material.io/design/" target="_blank">Google Material Design</a></li><li><a rel="noreferrer noopener" aria-label=" (abre numa nova aba)" href="https://www.microsoft.com/design/fluent/" target="_blank">Microsoft Fluent Design</a></li><li><a rel="noreferrer noopener" aria-label="IBM Carbon Design System (abre numa nova aba)" href="https://www.carbondesignsystem.com/" target="_blank">IBM Carbon Design System</a></li><li><a rel="noreferrer noopener" aria-label=" (abre numa nova aba)" href="https://www.lightningdesignsystem.com/" target="_blank">Salesforce Lightning</a></li><li><a rel="noreferrer noopener" aria-label="SAP Fiori (abre numa nova aba)" href="https://experience.sap.com/fiori-design/" target="_blank">SAP Fiori</a></li><li><a href="https://docs.vanillaframework.io/" target="_blank" rel="noreferrer noopener" aria-label="Canonical Vanilla Design (abre numa nova aba)">Canonical Vanilla Design</a></li></ul>



<p>Como dito anteriormente, seguir um sistema de design de sistema operacional é fundamental para manter uma experiência fluida para o usuário. Por isso que, por exemplo, é possível sentir diferenças entre uma mesma aplicação desenvolvida para Windows, Android e dispositivos Apple, porque cada desenvolvedora, apesar de manter sua própria identidade, adapta-se para o ambiente em que o usuário estará.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="910" src="https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp-1024x910.jpg" alt="" class="wp-image-1987" srcset="https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp-1024x910.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp-400x356.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp-768x683.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp-600x533.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/12/whatsapp.jpg 1215w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>O Whatsapp adapta quase que completamente sua UI de acordo com o sistema de design de cada Sistema Operacional</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="515" src="https://velhobit.com.br/wp-content/uploads/2019/12/vs-1024x515.jpg" alt="" class="wp-image-1988" srcset="https://velhobit.com.br/wp-content/uploads/2019/12/vs-1024x515.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/12/vs-400x201.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/12/vs-768x386.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/12/vs-600x302.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/12/vs.jpg 1366w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Visual Studio no Windows 10 vs Visual Studio no MacOSX</figcaption></figure>



<p>Não necessariamente o designer ou desenvolvedor são obrigados a seguir um determinado sistema de design de terceiros. Às vezes, a melhor opção é justamente criar o seu próprio sistema ou criar uma barreira para ter uma identidade única para sua aplicação.</p>



<p>Algumas empresas, como a Google, estimulam para que os designers utilizem seus sistemas também em sites ou aplicativos web. Para isso, dão descrições específicas de usabilidade e ferramentas que possam agilizar o desenvolvimento dessas aplicações.</p>



<h2 class="wp-block-heading">Frameworks e Bibliotecas</h2>



<p>Para facilitar o desenvolvimento, muitas empresas oferecem frameworks e bibliotecas, tanto web quanto para desktop e mobile, afim de estimular o desenvolvedor a seguir aquele determinado padrão.</p>



<p>É interessante para as grandes desenvolvedoras que outras empresas sigam seus padrões de design, pois, dessa forma, ditam tendências e criam assimilações dos usuários com suas próprias plataformas, principalmente quando essas outras empresas utilizam ferramentas e APIs das grandes.</p>



<p>A exemplo de frameworks e bibliotecas temos:</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" aria-label="Twitter Bootstrap (abre numa nova aba)" href="https://getbootstrap.com/" target="_blank">Twitter Bootstrap</a></li><li><a rel="noreferrer noopener" aria-label="Google Material Library (abre numa nova aba)" href="https://api.flutter.dev/flutter/material/material-library.html" target="_blank">Google Material Library</a></li><li><a href="https://developer.microsoft.com/en-us/fabric#/controls/web/button" target="_blank" rel="noreferrer noopener" aria-label="Microsoft UI Fabric (abre numa nova aba)">Microsoft UI Fabric</a></li></ul>



<p>Porém, nem sempre essas opções suprem a demanda, pois não são compatíveis com outras bibliotecas e tecnologias. Por isso, muitos grupos de desenvolvedores trabalham para criar frameworks e bibliotecas abertas que seguem os padrões estipulados pelos sistemas de design. Como por exemplo:</p>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" aria-label="React UWP (abre numa nova aba)" href="https://www.react-uwp.com/" target="_blank">React UWP</a> (Fluent Design)</li><li><a href="https://materializecss.com/">Materialize </a>(Material Design)</li><li><a href="https://material-ui.com/">Material UI</a> (Material Design)</li><li><a rel="noreferrer noopener" aria-label="Ratchet  (abre numa nova aba)" href="http://goratchet.com/" target="_blank">Ratchet </a>(Apple Guideliness iOS)</li><li><a rel="noreferrer noopener" aria-label="Semantic UI (abre numa nova aba)" href="https://semantic-ui.com/" target="_blank">Semantic UI</a> (Inspirado na Apple e Material Design)</li></ul>



<p>Utilizar Sistemas de Design, além de facilitar o processo de desenvolvimento, ajuda a manter o usuário mais confortável no ambiente em que ele está acostumado. Criar ou adaptar o seu próprio sistema também ajuda a criar uma identidade única para seu conjunto de aplicativos e serviços.</p>



<p>Que outros sistemas de design e frameworks vocês podem recomendar? Deixem nos comentários.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Como criar um uploader drag &#038; drop, AJAX com porcentagem e Javascript puro?</title>
		<link>https://velhobit.com.br/programacao/como-criar-um-uploader-drag-drop-ajax-com-porcentagem-e-javascript-puro.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 01 Feb 2019 05:19:03 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[drag]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[efeito]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[uploader]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1806</guid>

					<description><![CDATA[Um breve tutorial para mostrar como fazer um uploader HTML5 de múltiplos, com porcentagem, drag 'n drop e, o melhor, com Javascript puro!]]></description>
										<content:encoded><![CDATA[
<p>Eu sei, o título é grande, mas trata-se de uma tecnologia muito útil quanto a usabilidade. A ideia é criar, da forma mais simples possível um <em>uploader</em> que mostre a porcentagem do que está sendo enviado, com múltiplos arquivos. Porém, não apenas isso, mas da forma mais pura possível, sem a necessidade de <em>frameworks</em>, bibliotecas de terceiros ou pre-processadores.  <strong>Em nosso tutorial, usaremos PHP no back-end, mas você pode usar a linguagem que melhor lhe adequar</strong>. Abaixo você pode testar um exemplo:</p>



<div class="area-upload">
			<label for="upload-file" class="label-upload">
				<i class="fas fa-cloud-upload-alt"></i>
				<div class="texto">Clique ou arraste o arquivo</div>
			</label>
			<input type="file" accept="image/jpg,image/png" id="upload-file" multiple="">
			
			<div class="lista-uploads">
			</div>
		</div>



<p style="background-color:#fff4d4" class="has-text-color has-background has-vivid-red-color">DISCLAIMER: Para preservar você, o blog e a mim, o upload.php do exemplo não está fazendo upload de verdade, então você não vai ter acesso ao arquivo no final, porém, no link do github está o código funcional.</p>



<!-- Place this tag where you want the button to render. -->
<center><a class="github-button" href="https://github.com/velhobit/upload-html/archive/master.zip" data-size="large" aria-label="Download velhobit/upload-html on GitHub">Download</a></center>



<h2 class="wp-block-heading">HTML</h2>



<p>Antes de prosseguir, vou alertar que estou usando o <em><a rel="noreferrer noopener" aria-label="font-awesome  (abre em uma nova aba)" href="https://velhobit.com.br/design/como-criar-sua-propria-fonte-e-a-usar-como-icone.html" target="_blank">font-awesome</a></em><a rel="noreferrer noopener" aria-label="font-awesome  (abre em uma nova aba)" href="https://velhobit.com.br/design/como-criar-sua-propria-fonte-e-a-usar-como-icone.html" target="_blank"> </a>no exemplo, apenas para não ter que fazer nenhum <em>upload</em> de imagens por hora, mas ele não é obrigado para o que vamos fazer.</p>



<p>Iniciaremos com um HTML bem simples. Vamos definir apenas a área de <em>upload</em>, da lista e uma área onde ficará o <em>input</em>. Esse input deve ser do tipo file e deve estar com o atributo <em>mutiple</em> definido. Nada muito especial por enquanto, pois nosso trunfo está mais no CSS e Javascript.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><div class="area-upload">
			<label for="upload-file" class="label-upload">
				<i class="fas fa-cloud-upload-alt"></i>
				<div class="texto">Clique ou arraste o arquivo</div>
			</label>
			<input type="file" accept="image/jpg,image/png" id="upload-file" multiple/>
			
			<div class="lista-uploads">
			</div>
		</div></textarea></pre>
</div>



<h2 class="wp-block-heading">CSS3</h2>



<p>O CSS que usaremos tem pontos específicos aos quais devemos prestar atenção. Por isso, vamos ver por trechos:</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >.area-upload{
	box-shadow: 0 5px 20px rgba(0,0,0,.2);
	margin: 20px auto;
	padding: 20px;
	box-sizing: border-box;
	
	width: 100%;
	max-width: 700px;
	position: relative;
}

.area-upload label.label-upload{
	border: 2px dashed #0d8acd;
	min-height: 200px;
	text-align: center;
	width: 100%;
	
	display: flex;
	justify-content: center;
	flex-direction: column;
	color: #0d8acd;
	position: relative;
	
	-webkit-transition: .3s all;
	-moz-transition: .3s all;
	-o-transition: .3s all;
	transition: .3s all;
}

.area-upload label.label-upload.highlight{
	background-color: #fffdaa;
}

.area-upload label.label-upload *{
	pointer-events: none;
}</textarea></pre>
</div>



<p>A área de <em>upload</em> é definida pelo CSS a partir de um espaço abrangente. O <em>label</em>, vai ser a referência que vamos usar para atingir toda a área pré-determinada e é o que vai também receber o estilo que indicará onde e quando pode soltar o objeto. Dessa forma, deve estar com um <em>position: absolute</em>, pegando toda a área do <em>upload</em>. Um detalhe importante é que esse label não pode possuir filhos com eventos do mouse, pois isso pode acarretar em funcionamento inadequado ao fazer um <em>hover</em> em uma área não indicada.</p>



<p>A área marcada como <em>hightlight</em> é justamente para demonstrar ao usuário que ele já pode soltar o arquivo.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >
.area-upload input{
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	-webkit-appearance: none;
	opacity: 0;
}</textarea></pre>
</div>



<p>O <em>input</em> vai nos servir de área de <em>drop</em>. Isso já é um padrão tanto para <em>Windows</em>, <em>MacOS</em> e <em>Linux</em> – de receber um (ou mais arquivos) arrastando os dados para o botão. Retirando a aparência padrão, podemos nos aproveitar dessa função e economizar várias linhas de código do <em>Javascript</em>. Não havendo a necessidade de configurarmos eventos de arquivos.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >.area-upload .lista-uploads .barra{
	background-color: #e6e6e6;
	margin: 10px 0;
	width: 100%;
	position: relative;
}

.area-upload .lista-uploads .barra .fill{
	background-color: #a1f7ff;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	min-width: 0;
	
	-webkit-transition: .2s all;
	-moz-transition: .2s all;
	-o-transition: .2s all;
	transition: .2s all;
}

.area-upload .lista-uploads .barra.complete .fill{
	background-color: #bcffdf;
}

.area-upload .lista-uploads .barra .text{
	z-index: 10;
	text-align: center;
	padding: 3px 5px;
	box-sizing: border-box;
	position: relative;
	width: 100%;
	color: black;
	font-size: 12px;
}
.area-upload .lista-uploads .barra .text a{
	color: black;
	font-weight: bold;
}

.area-upload .lista-uploads .barra.error .fill{	
	background-color: #c02929;
	color: white;
	min-width: 100%;
}

.area-upload .lista-uploads .barra.error .text{
	color: white;
}</textarea></pre>
</div>



<p>Talvez a área que possa confundir um pouco mais, principalmente os mais novatos, seja o CSS referente as barras de <em>loading</em>. As barras são definidas como <em>relative</em> e seu conteúdo como <em>absolute</em>. Dessa forma, podemos herdar a porcentagem do <em>upload</em> e usá-la diretamente no <em>min-width</em> do elemento. Usamos <em>min-width</em>, ao invés de <em>width</em> para utilizar o <em>transition</em>, dando uma leveza no <em>upload</em> ao invés de pequenos estalos.</p>



<h2 class="wp-block-heading">Javascript</h2>



<p>Inicialmente iremos definir os efeitos de <em>drag</em> and <em>drop</em>. Utilizaremos os eventos específicos para adicionar ou retirar o css de <em>hightlight</em>. Aquele que falamos acima ao montar o CSS.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="javascript" name="mshighlighter" >let drop_ = document.querySelector('.area-upload #upload-file');
drop_.addEventListener('dragenter', function(){
	document.querySelector('.area-upload .label-upload').classList.add('highlight');
});
drop_.addEventListener('dragleave', function(){
	document.querySelector('.area-upload .label-upload').classList.remove('highlight');
});
drop_.addEventListener('drop', function(){
	document.querySelector('.area-upload .label-upload').classList.remove('highlight');
});</textarea></pre>
</div>



<p>Agora precisamos validar os dados antes de colocar em nosso servidor. Compusemos uma validação que verifica o tipo de arquivo e a quantidade máxima de 2MB. Essa validação é totalmente no <em>front-end</em>. É recomendado que você também faça uma validação posterior no <em>back-end</em> para evitar fraudes. Essa função receberá como parâmetro um arquivo, o qual faremos a validação.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="javascript" name="mshighlighter" >function validarArquivo(file){
	console.log(file);
	// Tipos permitidos
	var mime_types = [ 'image/jpeg', 'image/png' ];
	
	// Validar os tipos
	if(mime_types.indexOf(file.type) == -1) {
		return {"error" : "O arquivo " + file.name + " não permitido"};
	}

	// Apenas 2MB é permitido
	if(file.size > 2*1024*1024) {
		return {"error" : file.name + " ultrapassou limite de 2MB"};
	}

	// Se der tudo certo
	return {"success": "Enviando: " + file.name};
}</textarea></pre>
</div>



<p>Para enviar os arquivos, usaremos uma função AJAX simples. Fazemos um <em>request</em> no método POST. Nesta função, iremos capturar também a porcentagem do <em>upload</em> e atualizaremos a barra a partir desta, através do evento <em>progress</em>. Essa nossa função receberá o índice, para identificar o arquivo que está sendo enviado e a barra que será modificada.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="javascript" name="mshighlighter" >function enviarArquivo(indice, barra){
	var data = new FormData();
	var request = new XMLHttpRequest();
	
	//Adicionar arquivo
	data.append('file', document.querySelector('#upload-file').files[indice]);
	
	// AJAX request finished
	request.addEventListener('load', function(e) {
		// Resposta
		if(request.response.status == "success"){
			barra.querySelector(".text").innerHTML = "<a href=\"" + request.response.path + "\" target=\"_blank\">" + request.response.name + "</a> <i class=\"fas fa-check\"></i>";
			barra.classList.add("complete");
		}else{
			barra.querySelector(".text").innerHTML = "Erro ao enviar: " + request.response.name;
			barra.classList.add("error");
		}
	});
	
	// Calcular e mostrar o progresso
	request.upload.addEventListener('progress', function(e) {
		var percent_complete = (e.loaded / e.total)*100;
		
		barra.querySelector(".fill").style.minWidth = percent_complete + "%"; 
	});
	
	//Resposta em JSON
	request.responseType = 'json';
	
	// Caminho
	request.open('post', 'upload.php'); 
	request.send(data);
}</textarea></pre>
</div>



<p>Por fim, iremos juntar um pouco de cada coisa que fizemos, adicionando uma função em um evento <em>change</em> do <em>input</em> do upload. Neste momento, também é feito o laço dentre o(s) arquivo(s) selecionado(s) para validar e, se for válido, fazer o <em>upload</em>, utilizando os outros métodos acima mencionados. É neste momento também que serão criadas dinamicamente as barras: uma para cada arquivo.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="javascript" name="mshighlighter" >
document.querySelector('#upload-file').addEventListener('change', function() {
var files = this.files;
for(var i = 0; i &lt; files.length; i++){
var info = validarArquivo(files[i]);
    //Criar barra
    var barra = document.createElement("div");
    var fill = document.createElement("div");
    var text = document.createElement("div");
    barra.appendChild(fill);
    barra.appendChild(text);

    barra.classList.add("barra");
    fill.classList.add("fill");
    text.classList.add("text");

    if(info.error == undefined){
        text.innerHTML = info.success;
        enviarArquivo(i, barra); //Enviar
    }else{
        text.innerHTML = info.error;
        barra.classList.add("error");
    }

    //Adicionar barra
    document.querySelector('.lista-uploads').appendChild(barra);
};
});</textarea></pre>
</div>



<h2 class="wp-block-heading">PHP</h2>



<p>E pra terminar com chave de ouro, um <em>PHPzinho</em> que receberá esses arquivos e retornará um <em>json</em> com a confirmação de sucesso ou erro. Não aplicamos muitas validações nesse PHP pois nosso foco era neste exemplo está no <em>front-end</em>, mas é suficiente para que você compreenda sua funcionalidade.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="php" name="mshighlighter" ><?php
ini_set('upload_max_filesize', '2M');
header('Content-Type: application/json');
$file = $_FILES['file'];

$ret = [];

if(move_uploaded_file($file['tmp_name'],'uploads/'.$file['name'])){
    $ret["status"] = "success";
    $ret["path"] = 'uploads/'. $file['name'];
    $ret["name"] = $file['name'];
}else{
    $ret["status"] = "error";
    $ret["name"] = $file['name'];
}

echo json_encode($ret, JSON_PRETTY_PRINT);
?></textarea></pre>
</div>



<p>E, como sempre, você pode baixar o código inteiro no <em>Github</em> e usar direto na sua aplicação.</p>



<!-- Place this tag where you want the button to render. -->
<center><a class="github-button" href="https://github.com/velhobit/upload-html/archive/master.zip" data-size="large" aria-label="Download velhobit/upload-html on GitHub">Download</a></center>



<p>Gostou? Se sim, compartilha com seus amiguinhos interessados na área e curte a página no <strong><em><a rel="noreferrer noopener" href="https://www.facebook.com/velhobit/" target="_blank">Facebook</a></em></strong>. O exemplo acima está levemente modificado para que funcione melhor aqui no site. Entre também no grupo de Design e Desenvolvimento. O <em>link</em> está abaixo do post.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wireframe, Mockup ou Protótipo?</title>
		<link>https://velhobit.com.br/design/wireframe-mockup-ou-prototipo.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Thu, 31 Jan 2019 05:33:02 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[interface gráfica]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[UX]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1780</guid>

					<description><![CDATA[Quando iniciamos a criação de sistemas, usamos diversas técnicas para ilustrar o resultado final. Você sabe a diferença entre Wireframe, Mockup e Protótipo?]]></description>
										<content:encoded><![CDATA[
<p>Quando iniciamos um aplicativo, site, sistema, ou diversos outros ambientes de interação, o primeiro passo é criar diferentes tipos de propostas de como vai ser a aplicação e de como vai ser seu comportamento. Se você é desenvolvedor, independente de ser designer ou programador, ou ainda está estudando, você já deve ter tido a necessidade de criar, ao menos, um rascunho de como será a interface gráfica de sua aplicação. E, se você pretende trabalhar especificamente com interfaces gráficas ou UX, a definição desses termos é ainda mais importante, sendo fundamental para uma boa comunicação e escolha de ferramentas adequadas.</p>



<h2 class="wp-block-heading">Importância</h2>



<p>Quando o desenvolvedor está em reunião com seu cliente, ou apenas lendo os requerimentos, este já vislumbra em sua mente o processo pelo qual o usuário conseguirá atingir seu objetivo. Além disso, também pensa em como comandos e dados devem influenciar uns aos outros (o que chamamos de <strong>regra de negócio</strong> do <em>software</em>). Mas nossa mente não é exatamente o melhor local para armazenar informações, pois a memória humana é volátil, se adapta e, o que é mais comum, se esquece de informações que podem ser importantes.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="698" src="https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta-1024x698.jpg" alt="" class="wp-image-1781" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta-1024x698.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta-400x273.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta-768x524.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta-600x409.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/01/escrevendo-caneta.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Por isso, é normal que um profissional, desde o seu primeiro pensamento, já comece a fazer rabiscos e anotações em uma caderneta ou em um guardanapo. Dessa forma, ele vai poder planejar não apenas o leiaute, mas todo comportamento do usuário e, inclusive, ajudar a modelagem de dados e lógica do projeto.</p>



<h2 class="wp-block-heading">Esboços ou <em>Sketchs</em></h2>



<p>Um <strong>esboço</strong> ou <em><strong>sketch</strong></em>, é o primeiro passo para a criação da interface gráfica de um aplicativo. Basicamente é o que o desenvolvedor em primeiro passo. Desenhos simples, com muitas marcações, textos e números, que devem ser suficientes apenas para a compreensão deste e/ou do designer responsável (caso o designer não seja o próprio desenvolvedor). Esses esboços são feitos em papel, de preferência em um bloco de anotações, com lapiseira ou caneta. Fazer à mão é importante para que a fluidez do pensamento resolva melhores definições, assim como a ideia flui melhor dentro da cabeça de que o está projetando.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="526" src="https://velhobit.com.br/wp-content/uploads/2019/01/sketchs-1024x526.jpg" alt="" class="wp-image-1782" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/sketchs-1024x526.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/sketchs-400x205.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/sketchs-768x394.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/sketchs-600x308.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/01/sketchs.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Para quem tem uma frequência muito alta de rascunhos, existem cadernetas específicas para isso, tendo formatos e linhas de base adequadas para o tipo de dispositivo. Outras pessoas preferem andar com papéis impressos com os templates base. Sites como o <a rel="noreferrer noopener" aria-label="SneakPeekit (abre em uma nova aba)" href="https://sneakpeekit.com/" target="_blank">SneakPeekit</a> e o <a href="http://www.raincreativelab.com/paperbrowser/" target="_blank" rel="noreferrer noopener" aria-label="PaperBrowser (abre em uma nova aba)">PaperBrowser</a>, disponibilizam templates para esboços.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="840" height="360" src="https://velhobit.com.br/wp-content/uploads/2019/01/resources_app_designers_printable.jpg" alt="" class="wp-image-1783" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/resources_app_designers_printable.jpg 840w, https://velhobit.com.br/wp-content/uploads/2019/01/resources_app_designers_printable-400x171.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/resources_app_designers_printable-768x329.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/resources_app_designers_printable-600x257.jpg 600w" sizes="auto, (max-width: 840px) 100vw, 840px" /><figcaption>fonte: geekchix.org</figcaption></figure>



<h2 class="wp-block-heading"><em>Wireframes</em></h2>



<p><em><strong>Wireframes</strong></em> são leiautes demonstrativos da diagramação de elementos na tela, geralmente contendo indicadores. Trata-se de uma evolução de um esboço, sendo mais bem trabalhado, indicando a disposição dos diversos elementos e conteúdo. Por originalmente serem desenhados em papeis milimetrados ou pautados, são também chamados de <strong>esboços de grade</strong>. Esta etapa ainda pode ser feita por alguém sem muita experiência com <a rel="noreferrer noopener" aria-label=" (abre em uma nova aba)" href="https://velhobit.com.br/design/o-que-e-design.html" target="_blank">design</a>, pois é basicamente uma forma de organizar as ideias rabiscadas anteriormente no papel. <a href="https://velhobit.com.br/design/quanto-custa-ser-designer.html" target="_blank" rel="noreferrer noopener" aria-label="Se você designe (abre em uma nova aba)">Se você designe</a>r, é comum pular essa etapa, indo do esboço direto para o <em>mockup</em>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="683" src="https://velhobit.com.br/wp-content/uploads/2019/01/4979740562_6dfdf842ce_b-1024x683.jpg" alt="" class="wp-image-1784" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/4979740562_6dfdf842ce_b.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/4979740562_6dfdf842ce_b-400x267.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/4979740562_6dfdf842ce_b-768x512.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/4979740562_6dfdf842ce_b-600x400.jpg 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Foto: Todd Moy</figcaption></figure>



<p>Hoje os <em>wireframes</em> são feitos digitalmente, por ferramentas específicas, como o <em><a href="https://balsamiq.com/" target="_blank" rel="noreferrer noopener" aria-label="Balsamiq Wireframes (abre em uma nova aba)">Balsamiq Wireframes</a></em> ou através de conjuntos de bibliotecas e plugins que podem ser incorporados aos aplicativos da Adobe, como o Illustrator.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="576" src="https://velhobit.com.br/wp-content/uploads/2019/01/toptal-blog-image-1524474978083-99a81d0b114fa0634cd822f13e00e24d-1024x576.png" alt="" class="wp-image-1785" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/toptal-blog-image-1524474978083-99a81d0b114fa0634cd822f13e00e24d-1024x576.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/toptal-blog-image-1524474978083-99a81d0b114fa0634cd822f13e00e24d-400x225.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/toptal-blog-image-1524474978083-99a81d0b114fa0634cd822f13e00e24d-768x432.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/toptal-blog-image-1524474978083-99a81d0b114fa0634cd822f13e00e24d-600x337.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Biblioteca de Wireframes no Adobe Illustrator. Foto: Toptal.</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="361" src="https://velhobit.com.br/wp-content/uploads/2019/01/di-1024x361.png" alt="" class="wp-image-1786" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/di-1024x361.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/di-400x141.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/di-768x271.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/di-600x211.png 600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Exemplos Wireframes</figcaption></figure>



<h2 class="wp-block-heading">Mockups</h2>



<p>Agora é a vez do designer (ou seu lado designer) brilhar. Os <em><strong>mockups</strong></em> são leiautes com exemplos finais, ou muito próximo destes, da interface gráfica. Basicamente serve de mapa para a implementação da mesma, com exemplos das telas, componentes e estilos já finalizados. Os mockups são bem mais trabalhados que os <em>wireframes</em> e raramente possuem indicadores internos, para não atrapalhar a compreensão da GUI (Interface Gráfica do Usuário). Muitas vezes, é comum mostrar os mockups também em cenas de interações, ajudando a demonstrar o uso e a ter uma melhor ideia do resultado final.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="691" src="https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920-1024x691.png" alt="" class="wp-image-1787" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920-1024x691.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920-400x270.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920-768x518.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920-600x405.png 600w, https://velhobit.com.br/wp-content/uploads/2019/01/3a893117-9de6-437f-a814-e223c0eaa1ae_rw_1920.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Fonte: https://portillo.myportfolio.com</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="504" height="1024" src="https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1-504x1024.png" alt="" class="wp-image-1789" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1-504x1024.png 504w, https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1-197x400.png 197w, https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1-768x1559.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1-296x600.png 296w, https://velhobit.com.br/wp-content/uploads/2019/01/velhobit.com_.br_shoppingrecife_ionic_www_iPhone-6_7_8-Plus-1.png 1410w" sizes="auto, (max-width: 504px) 100vw, 504px" /></figure>



<p>Dentre diversas ferramentas para criação de <em>mockups</em>, temos o<a rel="noreferrer noopener" aria-label=" Adobe XD (abre em uma nova aba)" href="https://www.adobe.com/br/products/xd.html" target="_blank"> Adobe XD</a> (gratuito), o Sketch e há quem até hoje prefira criar bibliotecas no Photoshop, Illustrator, Pixelmator ou similares. Sendo opção ou não do designer seguir as diretrizes de interface humana recomendado para o sistema ou aplicação.</p>



<h3 class="wp-block-heading"><em>Human Interface&nbsp;Guidelines</em></h3>



<p>Se você é designer, você ainda deve trabalhar no chamado <em>Human Interface&nbsp;Guidelines</em> ou Diretrizes de Interface Humana, como alguns gostam de chamar. Trata-se das instruções básicas de como deve ser a GUI da aplicação, de um contexto de uma suite agregada ou até mesmo, como em sistemas operacionais, instruções de como outros designers devem implementar soluções para essa aplicação.</p>



<p>Para quem já trabalha ou trabalhou com identidades visuais, se assemelha muito aos manuais destas, porém ainda mais detalhados, mas com as informações sobre espaçamentos, iconografia, tipografia, cores, etc, incluindo, mas não se resumindo, a um conjunto de mockups que possuem exemplos das telas. Essas informações devem ser seguidas à risca por quem for implementar, sejam outros designers ou programadores front-end.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="691" src="https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920-1024x691.png" alt="" class="wp-image-1792" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920-1024x691.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920-400x270.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920-768x518.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920-600x405.png 600w, https://velhobit.com.br/wp-content/uploads/2019/01/3ebe1ef046d020b4f5c485e3_rw_1920.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Fonte: https://portillo.myportfolio.com</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="512" src="https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920-1024x512.jpg" alt="" class="wp-image-1790" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920-1024x512.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920-400x200.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920-768x384.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920-600x300.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/01/426bcc51-fadd-4f04-b73c-82c90f4cbb7c_rw_1920.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Fonte: https://portillo.myportfolio.com</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="512" src="https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920-1024x512.jpg" alt="" class="wp-image-1793" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920-1024x512.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920-400x200.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920-768x384.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920-600x300.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/01/fec31b81-20f8-42d8-bef2-fa3ce6ea3013_rw_1920.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Fonte: https://portillo.myportfolio.com</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="691" src="https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920-1024x691.png" alt="" class="wp-image-1794" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920-1024x691.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920-400x270.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920-768x518.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920-600x405.png 600w, https://velhobit.com.br/wp-content/uploads/2019/01/104d9b7d-8826-4536-9372-d450e58f9ca1_rw_1920.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Fonte: https://portillo.myportfolio.com</figcaption></figure>



<p>As Diretrizes são fundamentais principalmente em um sistema com uma quantidade de telas indefinida, como sistemas de gestão. Elas vão servir de guia para a criação de novas telas e componentes, além de inspiração para futuros materiais de publicidade e até sites.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="693" src="https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6-1024x693.png" alt="" class="wp-image-1795" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6-1024x693.png 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6-400x271.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6-768x520.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6-600x406.png 600w, https://velhobit.com.br/wp-content/uploads/2019/01/inputs_1360x920_vp6.png 1360w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Foto: Microsoft Fluent Design</figcaption></figure>



<p>Se você vai fazer uma aplicação para um determinado sistema operacional, ou apenas quer usar um como referência para não se preocupar tanto com o design, existem algumas diretrizes bem famosas, dentre elas a da <a rel="noreferrer noopener" aria-label="Apple (abre em uma nova aba)" href="https://developer.apple.com/design/" target="_blank">Apple&nbsp;</a>(disponível para iOS/MacOS/TVOS/WatchOS), o <a rel="noreferrer noopener" aria-label="Material Design (abre em uma nova aba)" href="https://material.io/design/" target="_blank">Material Design</a> do Google (aplicável para sites e Android), o <a rel="noreferrer noopener" aria-label="Fluent Design (abre em uma nova aba)" href="https://developer.microsoft.com/en-us/windows/apps/design" target="_blank">Fluent Design</a> da Microsoft (também disponível o <a rel="noreferrer noopener" aria-label="UXGuide legado (abre em uma nova aba)" href="https://docs.microsoft.com/en-us/windows/desktop/uxguide/controls" target="_blank">UXGuide legado</a>) e tantos outros mais genéricos que você pode encontrar ou comprar pela internet.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="768" height="360" src="https://velhobit.com.br/wp-content/uploads/2019/01/Dialog-buttons.png" alt="" class="wp-image-1797" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/Dialog-buttons.png 768w, https://velhobit.com.br/wp-content/uploads/2019/01/Dialog-buttons-400x188.png 400w, https://velhobit.com.br/wp-content/uploads/2019/01/Dialog-buttons-600x281.png 600w" sizes="auto, (max-width: 768px) 100vw, 768px" /><figcaption>Fonte: Apple</figcaption></figure>



<h4 class="wp-block-heading">UI Kits</h4>



<p>Se você está trabalhando com <em>mockups</em> e <em>wireframes</em>, geralmente você está trabalhando focado no funcionamento em um sistema operacional. Para montar seu leiaute de forma mais simples e sem perder muito tempo se  adequando à diretriz escolhida, as desenvolvedoras costumam também disponibilizar <em>UI Kits</em>.</p>



<p>Esses <strong>kits de interface de usuário</strong> são arquivos ou bibliotecas que possuem os principais elementos gráficos genéricos do sistema. Geralmente é incluído elementos como botões, <em>inputs</em>, padrões de texto, cores, etc. Os principais <em>UI kits</em>, incluindo Android e iOS estão disponíveis direto pelas respectivas empresas ou através das desenvolvedoras dos principais <em>softwares</em> de <em>mockups</em>.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="565" src="https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms-1024x565.jpg" alt="" class="wp-image-1798" srcset="https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms-1024x565.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms-400x221.jpg 400w, https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms-768x424.jpg 768w, https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms-600x331.jpg 600w, https://velhobit.com.br/wp-content/uploads/2019/01/Adobe-XD-has-UI-kits-for-major-app-platforms.jpg 1344w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>UI Kit do Android / Material Design para o Adobe XD. Fonte: Adobe.</figcaption></figure>



<h2 class="wp-block-heading">Protótipo</h2>



<p>O último passo antes (ou até durante) a implementação é a prototipagem. Basicamente, ele é um passo acima do <em>mockup.</em> Uma etapa onde o <a rel="noreferrer noopener" aria-label=" (abre em uma nova aba)" href="https://velhobit.com.br/design/o-que-e-design-de-interacao.html" target="_blank">designer de interação</a> não apenas demonstra o leiaute <em>per se</em>, mas as ações e interações entre as telas e elementos. Há várias formas de se criar um protótipo.</p>



<p>Algumas pessoas mais experientes preferem criar HTMLs simples, com animações e ações apenas com dados de exemplos, para demonstrar o comportamento, sem se importar ainda com tecnologias ideais ou funcionalidade, pois a ideia é ser apenas demonstrativo.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="720" height="520" src="https://velhobit.com.br/wp-content/uploads/2019/01/xd-riverflow-2-720x520.gif" alt="" class="wp-image-1800"/><figcaption>Exemplo de prototipagem no Adobe XD. Fonte: divulgação.</figcaption></figure>



<p>Hoje em dia, entretanto, é mais comum usar ferramentas de prototipagem. Quase todas as ferramentas modernas de mockup também fazem prototipagem, como o Adobe XD, Sketch, Figma, Zeplin, dentre outros. Esses aplicativos possuem diversas ferramentas não só de interação, como demonstração de transições e testes em dispositivos móveis.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="710" height="400" src="https://velhobit.com.br/wp-content/uploads/2019/01/sketch-prototype-11.gif" alt="" class="wp-image-1799"/><figcaption>Exemplo de prototipagem no InVision. Fonte: divulgação.</figcaption></figure>



<p>Outra forma de prototipagem são as criadas para apresentação em vídeo. Geralmente são criadas para vender uma ideia e não tem ainda um planejamento do software. Algumas ferramentas de prototipagem, como o InVision, Fuse e o Proto.io possuem ferramentas específicas para exportação em vídeo. Há também quem prefira fazer as transições do protótipo direto no After Effects, para dar um charme a mais para essas apresentações, geralmente com o uso de bibliotecas de animações.</p>



<h2 class="wp-block-heading">Concluindo</h2>



<p>O processo de esquematização visual de uma aplicação é fundamental para que a equipe envolvida no desenvolvimento tenha um guia de como deverá ser projetada a aplicação. Desde o esboço até a prototipagem, essas técnicas ajudam na compreensão, agilidade e segurança do projeto. O esforço para conhecer bem os termos ajuda na comunicação entre os integrantes da equipe, garantindo uma melhor interação entre todos.</p>



<p>Se gostou do que leu, <a href="https://www.facebook.com/velhobit/" target="_blank" rel="noreferrer noopener" aria-label="curta a página no Facebook (abre em uma nova aba)">curta a página no Facebook</a> e compartilhe a informação.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Como destacar (hightlight) uma célula de uma Tabela HTML após uma busca</title>
		<link>https://velhobit.com.br/programacao/como-destacar-hightlight-uma-celula-de-uma-tabela-html-apos-uma-busca.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 23:38:57 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1771</guid>

					<description><![CDATA[Como fazer uma busca em uma tabela e destacar a célula e coluna do resultado]]></description>
										<content:encoded><![CDATA[
<p>Melhorar a experiência do usuário é sempre importante. E, muitas vezes, resultados de pesquisas tendem a ser muito grandes, principalmente em pesquisas semânticas. Por que então não destacar o elemento buscado para facilitar que o usuário saiba a linha e/ou coluna correta? E, como sempre, Javascript puro.</p>



<h2 class="wp-block-heading">Exemplo</h2>



<form id="search" onsubmit="highlightColumn();return false">
  <input type="text" id="word"/>
  <button>
  Buscar Palavra
  </button>
</form>


<div id="areaTabela" class="area-tabela">
  <table>
    <thead>
      <tr>
        <th>Coluna A</th>
        <th>Coluna B</th>
        <th>Coluna C</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>abacaxi</td>
        <td>manga</td>
        <td>limão</td>
      </tr>
      <tr>
        <td>coelho</td>
        <td>espinafre</td>
        <td>jerimum</td>
      </tr>
      <tr>
        <td>tomate</td>
        <td>cebola</td>
        <td>rapadura</td>
      </tr>
    </tbody>
  </table>
</div>



<h2 class="wp-block-heading">HTML</h2>



<p>Para começar, vamos criar o form e a tabela. Nada complicado e semanticamente correto.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><form id="search" onsubmit="highlightColumn();return false">
  <input type="text" id="word"/>
  <button>
  Buscar Palavra
  </button>
</form>


<div id="areaTabela" class="area-tabela">
  <table>
    <thead>
      <tr>
        <th>Coluna A</th>
        <th>Coluna B</th>
        <th>Coluna C</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>abacaxi</td>
        <td>manga</td>
        <td>limão</td>
      </tr>
      <tr>
        <td>coelho</td>
        <td>espinafre</td>
        <td>jerimum</td>
      </tr>
      <tr>
        <td>tomate</td>
        <td>cebola</td>
        <td>rapadura</td>
      </tr>
    </tbody>
  </table>
</div></textarea></pre>
</div>



<h2 class="wp-block-heading">CSS</h2>



<p>Precisamos fazer o CSS. De forma geral, não precisamos criar tantas opções. O importante é você criar as classes referentes ao <em>highlight</em> e ao <em>highlight</em> da coluna. Tem um charminho de escala e sombra, mas você faz como achar melhor.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >.area-tabela table{
  margin-top:20px;
  border-spacing: 0;
  border: 1px solid grey;
  width: 100%;
}

.area-tabela table td, .area-tabela table th{
  width:80px;
  padding: 5px 10px;
  font-size: 14px;
  
  transition: all .3s linear;
  -moz-transition: all .3s linear;
  -webkit-transition: all .3s linear;
}

.area-tabela table th{
  background-color: grey;
  color: white;
  font-weight: normal;
}

.area-tabela table tr:nth-child(even) td{
  background-color: #efefef;
}

.area-tabela table tr td.high_col{
  background-color: #e5f7f8;
}
.area-tabela table tr:nth-child(even) td.high_col{
  background-color: #d1eff0;
}

.area-tabela table tr th.high_col{
  background-color: #063b5a;
}

.area-tabela table tr td.high_col.high{
  background-color: #93fffc;
  font-weight: bold;
  transform: scale(1.05);
  box-shadow: 0 3px 5px rgba(0,0,0,.5);
}</textarea></pre>
</div>



<h2 class="wp-block-heading">Javascript</h2>



<p>Agora vem a parte que pode complicar um pouco. A primeira coisa que precisamos fazer é certificar-se, em um laço, que limparemos as classes <em>high_col</em> e <em>high</em> dos outros elementos. Em seguida, iremos usar a função <em>evaluate</em> para verificar se o texto digitado está contido em uma das células. Para capturar os <em>td&#8217;s</em> da coluna ativa, iremos verificar o índice da célula encontrada e usaremos isso para colocar a classe nas outras células e cabeçalho dessa coluna.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="javascript" name="mshighlighter" >function highlightColumn(){
	//Clear
  document.querySelectorAll("#areaTabela table tr td").forEach((item)=>{
	item.classList.remove("high");
  item.classList.remove("high_col");
});
  document.querySelectorAll("#areaTabela table tr th").forEach((item)=>{
	item.classList.remove("high_col");
});
  
	var word = document.querySelector("#word").value;
 	
  if(word == ""){
  	return false;
  }
  
  //pegar o elemento
  var el = document.evaluate("//td[contains(.,'" + word + "')]", document.querySelector("#areaTabela"), null, XPathResult.ANY_TYPE, null ).iterateNext();
 
  //Se quiser a palavra completa e não trecho dela, troque a linha acima por:
  //var el = document.querySelector("td[text()='"+word+"']");
  
  //Check if el exists
  if(el == undefined){
    return false;
  }
  
  //Highlight column
  var index = (Array.prototype.slice.call(el.parentNode.children).indexOf(el));
  
  document.querySelectorAll("#areaTabela table tr td:nth-child("+(index+1)+"), #areaTabela table tr th:nth-child("+(index+1)+")").forEach((item)=>{
    item.classList.add("high_col");
  });
  
  //Highlight Element
  el.classList.add("high");
  
  return false;
}</textarea></pre>
</div>



<p class="has-text-color has-vivid-red-color">Obs. Se você quiser buscar pelo valor específico, substitua o evaluate por <strong><em>document.querySelector(&#8220;td[text()='&#8221;+word+&#8221;&#8216;]&#8221;)</em></strong>. Dessa forma não será selecionado  nenhuma célula a menos que o valor seja exato.</p>



<p>Simples não é?</p>



<p>Como sempre, o exemplo e código completo está disponível abaixo, desta vez no jsFiddle. Basta copiar o código se quiser usar diretamente em seu projeto.</p>



<script async src="//jsfiddle.net/velhobit/beu4xt69/2/embed/result,js,html,css/dark/"></script>



<p>Se gostou, compartilhe e <a href="https://facebook.com/velhobit/" target="_blank" rel="noreferrer noopener" aria-label="curta a página no Facebook. (abre em uma nova aba)">curta a página no Facebook.</a> Entre também no grupo através do link abaixo.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>FAB (Botão Flutuante) com CSS3 e HTML (sem Javascript)</title>
		<link>https://velhobit.com.br/tutoriais/fab-botao-flutuante-com-css3-e-html-sem-javascript.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Mon, 24 Dec 2018 21:14:35 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fab]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[interface do usuário]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1728</guid>

					<description><![CDATA[Sabe aquele componente FAB? Aquele que é um botão flutuante que você clica e abre outros botões. Que tal fazermos algo parecido apenas com HTML e CSS?]]></description>
										<content:encoded><![CDATA[
<p style="background-color:#fffad9" class="has-background"><strong>Disclaimer</strong>: O comportamento não vai funcionar no iOS, pois o iOS desconsidera as pseudoclasses utilizadas aqui. No lugar, ele utiliza uma pseudoclasse de <strong><em>:hover</em></strong> para significar a seleção sem clique. Ainda estou vendo qual a melhor forma de usar no iOS sem <em>bugar</em> o comportamento em <em>desktop</em>.</p>



<p>Continuando com os exercícios de lógica com CSS e HTML, iremos desta vez ver se é possível criar um FAB (<em>Float Action Button</em>) sem usar Javascript. E, adianto, sim, é possível. Se você quer ver os outros exercícios, acesse a <a rel="noreferrer noopener" aria-label="categoria de Tutoriais (abre em uma nova aba)" href="https://velhobit.com.br/tutoriais" target="_blank">categoria de </a><strong><a rel="noreferrer noopener" aria-label="categoria de Tutoriais (abre em uma nova aba)" href="https://velhobit.com.br/tutoriais" target="_blank">Tutoriais</a></strong>, deste site.</p>



<p class="has-text-color has-background has-very-dark-gray-color has-very-light-gray-background-color">Editado -> Para quem quer aplicar uma interação melhor, eu adicionei um exemplo de uso com Javascript no final do Post.</p>



<p>Esse tipo de botão é comum em aplicativos <em>Android</em> com <em>Material Design</em>. Se trata de um botão flutuante que fica em uma das extremidades inferiores (geralmente a direita) que abre uma lista com outros botões. Bem, se você está nesta página, basta olhar logo abaixo <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f601.png" alt="😁" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p>



<div style="border-radius: 3px; border: 1px solid grey; background-color: whitesmoke; position:relative; height: 300px; width: 100%;">
 <div class="fab">
  <button class="main" onclick="void(0)">
  </button>
  <ul>
    <li>
      <label for="opcao1">Opção 1</label>
      <button id="opcao1">
      ⎈
      </button>
    </li>
    <li>
      <label for="opcao2">Opção 2</label>
      <button id="opcao2">
      ⎗
      </button>
    </li>
    <li>
      <label for="opcao3">Opção 3</label>
      <button id="opcao3">
      ☏
      </button>
    </li>
  </ul>
</div>
</div>



<h2 class="wp-block-heading">HTML + CSS</h2>



<p>Um dos desafios é conseguir fazer algo semanticamente correto. Então, o leiaute em si consistirá em um container que contém um botão e uma lista de botões. Cada botão terá uma etiqueta (<em>label</em>) que será a descrição do que ele pode fazer.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><div class="fab"  ontouchstart="">
  <button class="main" >
  </button>
  <ul>
    <li>
      <label for="opcao1">Opção 1</label>
      <button id="opcao1">
      ⎈
      </button>
    </li>
    <li>
      <label for="opcao2">Opção 2</label>
      <button id="opcao2">
      ⎗
      </button>
    </li>
    <li>
      <label for="opcao3">Opção 3</label>
      <button id="opcao3">
      ☏
      </button>
    </li>
  </ul>
</div></textarea></pre>
</div>



<p>No exemplo, há apenas 3 opções e com caracteres genéricos. Você pode substituir por imagens (mas tomando cuidado com o tamanho destas) ou usando <em>font-icons</em>, como o <em>Font-Awesome</em>, o <em>MaterialDesign Lite</em> ou até mesmo <a rel="noreferrer noopener" aria-label="criar os seus próprios font-icons, como mostra este tutorial (abre em uma nova aba)" href="https://velhobit.com.br/design/como-criar-sua-propria-fonte-e-a-usar-como-icone.html" target="_blank">criar os seus próprios font-icons, como mostra este tutorial</a>. Também pode colocar quantos items quiser na lista, apenas tomando cuidado para não ficar alto demais e enrolar o usuário.</p>



<p>Como sempre usaremos as <strong>pseudoclasses</strong> para poder reconhecer ações. No caso, utilizaremos a pseudoclasse :active e :focus para detectar o &#8220;<em>click</em>&#8221; ou o &#8220;foco&#8221; (quando o <em>tab</em> fica em cima). Você também notará a existência de um símbolo de positivo (<strong>+</strong>). No CSS, o símbolo <strong>+</strong> é um indicativo de que o item que deverá ser formatado é o item logo após o DOM atual, porém no mesmo container hierárquico. Ou seja, quando você declara <strong><em>input + p</em></strong>, você quer aplicar o estilo no <strong>p</strong> imediatamente após o <strong><em>input</em></strong>. </p>



<p>Sem mais enrolações, segue o CSS</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >
.fab{
  position: fixed;
  bottom:10px;
  right:10px;
}

.fab button{
  cursor: pointer;
  width: 48px;
  height: 48px;
  border-radius: 30px;
  background-color: #cb60b3;
  border: none;
  box-shadow: 0 1px 5px rgba(0,0,0,.4);
  font-size: 24px;
  color: white;
    
  -webkit-transition: .2s ease-out;
  -moz-transition: .2s ease-out;
  transition: .2s ease-out;
}

.fab button.main{
  position: absolute;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  background-color: #5b19b7;
  right: 0;
  bottom: 0;
  z-index: 20;
}

.fab button.main:before{
  content: '⏚';
}

.fab ul{
  position:absolute;
  bottom: 0;
  right: 0;
  padding:0;
  padding-right:5px;
  margin:0;
  list-style:none;
  z-index:10;
  
  -webkit-transition: .2s ease-out;
  -moz-transition: .2s ease-out;
  transition: .2s ease-out;
}

.fab ul li{
  display: flex;
  justify-content: flex-start;
  position: relative;
  margin-bottom: -10%;
  opacity: 0;
  
  -webkit-transition: .3s ease-out;
  -moz-transition: .3s ease-out;
  transition: .3s ease-out;
}

.fab ul li label{
  margin-right:10px;
  white-space: nowrap;
  display: block;
  margin-top: 10px;
  padding: 5px 8px;
  background-color: white;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
  border-radius:3px;
  height: 18px;
  font-size: 16px;
  pointer-events: none;
  opacity:0;
  
  -webkit-transition: .2s ease-out;
  -moz-transition: .2s ease-out;
  transition: .2s ease-out;
}

.fab button.main:active,
.fab button.main:focus{
  outline: none;
  background-color: #7716ff;
  box-shadow: 0 3px 8px rgba(0,0,0,.5);
 }
 
.fab button.main:active:before,
.fab button.main:focus:before{
  content: '↑';
}

.fab button.main:active + ul,
.fab button.main:focus + ul{
  bottom: 70px;
}

.fab button.main:active + ul li,
.fab button.main:focus + ul li{
  margin-bottom: 10px;
  opacity: 1;
}

.fab button.main:active + ul li:hover label,
.fab button.main:focus + ul li:hover label{
  opacity: 1;
}</textarea></pre>
</div>



<p>O que estamos fazendo é aplicar um estilo na lista assim que o botão ganha foco ou é ativado. Você pode, se preferir, adicionar também ao passar em cima com o mouse, bastando adicionar, junto aos demais comandos do botão principal, a pseudoclasse <strong><em>:hover</em></strong> e repetindo o resto da declaração.</p>



<p>Simples, não é? E, como sempre, o exemplo no JsFiddle para você ir experimentando e fazendo seus próprios testes. Compartilhe com a galera!</p>



<script async="" src="//jsfiddle.net/velhobit/cm51d3vb/1/embed/html,css,result/"></script>



<p><strong>Versão com Javascript:</strong></p>



<script async src="//jsfiddle.net/velhobit/uxeyqb5z/2/embed/"></script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Efeito float label animado com CSS3 &#8211; Igual ao do novo login do Google</title>
		<link>https://velhobit.com.br/tutoriais/efeito-float-label-animado-com-css3-igual-ao-do-novo-login-do-google.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 21 Dec 2018 18:41:44 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[efeito]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1722</guid>

					<description><![CDATA[Copiando o estilo novo de transição do Login das Contas do Google, com CSS puro. Dessa vez com as bordas reforçadas.]]></description>
										<content:encoded><![CDATA[
<p>No post anterior, eu mostrei como fazer aquele <a rel="noreferrer noopener" aria-label="efeito de label float do Material Design (abre em uma nova aba)" href="https://velhobit.com.br/design/como-fazer-efeito-float-label-animado-com-css3-puro.html" target="_blank">efeito de </a><em><a rel="noreferrer noopener" aria-label="efeito de label float do Material Design (abre em uma nova aba)" href="https://velhobit.com.br/design/como-fazer-efeito-float-label-animado-com-css3-puro.html" target="_blank">label float</a></em><a rel="noreferrer noopener" aria-label="efeito de label float do Material Design (abre em uma nova aba)" href="https://velhobit.com.br/design/como-fazer-efeito-float-label-animado-com-css3-puro.html" target="_blank"> do </a><strong><a rel="noreferrer noopener" aria-label="efeito de label float do Material Design (abre em uma nova aba)" href="https://velhobit.com.br/design/como-fazer-efeito-float-label-animado-com-css3-puro.html" target="_blank">Material Design</a></strong>. Eis que esta semana eu me deparo com o novo <em>input</em> do login do Google e achei bem legal, mas pensei que ninguém ia se interessar.</p>



<p>Como vi uma pergunta em um grupo do Facebook, resolvi rapidinho então fazer uma variação do que foi feito no anterior, para atingir o mesmo efeito do input login do novo login do Google. Ah e, mais uma vez, sem javascript <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p>



<div style="background-color: white; border-radius: 10px; padding: 1.2rem">
<div class="label-float">
  <input type="text" placeholder=" ">
  <label>Telefone</label>
</div>
<br>
<div class="label-float">
  <input type="text" placeholder=" " required="">
  <label>Nome de Usuário</label>
</div>
</div>



<h2 class="wp-block-heading">HTML e CSS</h2>



<p>Se precisarem de alguma explicação mais aprofundada, dê um olhada no artigo anterior. Só uma observação importante é que o <strong><em>top</em></strong>, do <em>label</em>, deverá ser ajustado de acordo com o tamanho da letra e a tipografia usada, pois tipografias diferentes mudam a sensação de tamanho.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><div class="label-float">
  <input type="text" placeholder=" ">
  <label>Telefone</label>
</div>
<br>
<div class="label-float">
  <input type="text" placeholder=" " required="">
  <label>Nome de Usuário</label>
</div></textarea></pre>
</div>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >.label-float{
  position: relative;
  padding-top: 13px;
}

.label-float input{
  border: 1px solid lightgrey;
  border-radius: 5px;
  outline: none;
  min-width: 250px;
  padding: 15px 20px;
  font-size: 16px;
  transition: all .1s linear;
  -webkit-transition: all .1s linear;
  -moz-transition: all .1s linear;
  -webkit-appearance:none;
}

.label-float input:focus{
  border: 2px solid #3951b2;
}

.label-float input::placeholder{
  color:transparent;
}

.label-float label{
  pointer-events: none;
  position: absolute;
  top: calc(50% - 8px);
  left: 15px;
  transition: all .1s linear;
  -webkit-transition: all .1s linear;
  -moz-transition: all .1s linear;
  background-color: white;
  padding: 5px;
  box-sizing: border-box;
}

.label-float input:required:invalid + label{
  color: red;
}
.label-float input:focus:required:invalid{
  border: 2px solid red;
}
.label-float input:required:invalid + label:before{
  content: '*';
}
.label-float input:focus + label,
.label-float input:not(:placeholder-shown) + label{
  font-size: 13px;
  top: 0;
  color: #3951b2;
}</textarea></pre>
</div>



<p>E, como sempre, o link, com o exemplo do jsFiddle, se você deseja apenas experimentar e treinar um pouco:</p>



<script async="" src="//jsfiddle.net/velhobit/1up08b4z/1/embed/html,css,result/"></script>



<p>Compartilhe se você achou legal!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Como fazer efeito float label animado com CSS3 puro</title>
		<link>https://velhobit.com.br/tutoriais/como-fazer-efeito-float-label-animado-com-css3-puro.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Mon, 17 Dec 2018 02:17:10 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design de interação]]></category>
		<category><![CDATA[efeito]]></category>
		<category><![CDATA[front]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1709</guid>

					<description><![CDATA[Como criar um efeito float no label, quando input preenchido, com CSS3 puro e HTML (similar ao input do Android). E, melhor, sem Javascript!]]></description>
										<content:encoded><![CDATA[
<p>O último post sobre<a rel="noreferrer noopener" aria-label="O último post sobre como criar um efeito ON/OFF em um checkbox usando CSS3 puro fez muito sucesso. Dessa forma, pensei o que mais poderia ser legal para fazer com CSS3. Analisando um pouco o comportamento do Android, me lembrei de um componente bem interessante que é o input com um label float animado. Basicamente, ao preencher o conteúdo, o label sobe e vai para um pouco acima do input, como no exemplo abaixo: (abre em uma nova aba)" href="https://velhobit.com.br/design/input-checkbox-switch-on-off-apenas-com-css3.html" target="_blank"> como criar um efeito ON/OFF em um checkbox usando CSS3 puro</a> fez muito sucesso. Dessa forma, pensei o que mais poderia ser legal para fazer com CSS3. Analisando um pouco o comportamento do <em>Android</em>, me lembrei de um componente bem interessante que é o <em>input</em> com um <em>label float</em> animado. Basicamente, ao preencher o conteúdo, o <em>label</em> sobe e vai para um pouco acima do input, como no exemplo abaixo:</p>



<div class="inputes">
<div class="label-float">
  <input type="text" placeholder=" "/>
  <label>Telefone</label>
</div>
<br/>
<div class="label-float">
  <input type="text" placeholder=" " required/>
  <label>Nome de Usuário</label>
</div>
</div>



<h2 class="wp-block-heading">Agora&#8230; como fazer?</h2>



<p>O segredo está novamente nas <strong>pseudoclasses</strong> e <strong>operadores</strong>. Graças as pseudoclasses eu posso definir, com alguns gatilhos, o comportamento de um determinado elemento HTML.</p>



<p>No caso, esse gatilho é o placeholder, então é fundamental que o input possua um placeholder (vazio ou não) para criar o efeito. Pois o que identifica que algo foi preenchido ou não é justamente o <em>placeholder</em>. <strong>Sem o placeholder definido, o efeito não funciona.</strong> A pseudoclasse referente ao required também é usada em nosso exemplo:</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><div class="label-float">
  <input type="text" placeholder=" "/>
  <label>Telefone</label>
</div>

<div class="label-float">
  <input type="text" placeholder=" " required/>
  <label>Nome de Usuário</label>
</div></textarea></pre>
</div>



<p>Já para o efeito de transição, usaremos o <em>transition</em> e o comportamento do <em>absolute</em> que, por definição, tem seus eixos referentes ao pai, no caso desse ser <em>relative</em>. Então basta usar o CSS abaixo:</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >
.label-float{
  position: relative;
  padding-top: 13px;
}

.label-float input{
  border: 0;
  border-bottom: 2px solid lightgrey;
  outline: none;
  min-width: 180px;
  font-size: 16px;
  transition: all .3s ease-out;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  -webkit-appearance:none;
  border-radius: 0;
}

.label-float input:focus{
  border-bottom: 2px solid #3951b2;
}

.label-float input::placeholder{
  color:transparent;
}

.label-float label{
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  margin-top: 13px;
  transition: all .3s ease-out;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
}

.label-float input:required:invalid + label{
  color: red;
}
.label-float input:focus:required:invalid{
  border-bottom: 2px solid red;
}
.label-float input:required:invalid + label:before{
  content: '*';
}
.label-float input:focus + label,
.label-float input:not(:placeholder-shown) + label{
  font-size: 13px;
  margin-top: 0;
  color: #3951b2;
}</textarea></pre>
</div>



<p>Como sempre, estou disponibilizando o exemplo completo no JsFiddle!</p>


<p><script async src="//jsfiddle.net/velhobit/4eu2r0q5/embed/html,css,result/"></script></p>



<p>Gostou? Então curta a página no <a href="https://www.facebook.com/velhobit/" target="_blank" rel="noreferrer noopener" aria-label="Gostou? Então curta a página no Facebook e compartilhe com os coleguinhas! (abre em uma nova aba)">Facebook</a> e compartilhe com os coleguinhas!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Input Checkbox Switch ON / OFF apenas com CSS3</title>
		<link>https://velhobit.com.br/tutoriais/input-checkbox-switch-on-off-apenas-com-css3.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sun, 16 Dec 2018 00:14:00 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[UX]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1699</guid>

					<description><![CDATA[Estava cansado e resolvi pensar em uma forma de fazer um Switch ON / OFF similar ao que tem no Android e iOS, para usar pelo navegador, com HTML e CSS3]]></description>
										<content:encoded><![CDATA[
<p>O CSS é o mecanismo utilizado pelos navegadores para informar a estes como deve ser exibido determinado elemento HTML. Desde a versão 3 muitas coisas novas permitiram que a web fosse cada vez bonita e funcional.</p>



<p>Eu estava um pouco cansado do trabalho e para relaxar fiquei pensando em uma solução simples para simular um Switch ON/OFF que pudesse ser aplicado no lugar de um checkbox. E, para isso, usei simplesmente CSS3 e pseudoclasses:</p>



<div class="check-radio">
  <input type="checkbox"/>
</div>
<br/><br/>



<p>Basicamente, pseudoclasses nos permitem adicionar instruções específicas de acordo com determinados comportamentos ou condições dos elementos HTML. Neste pequeno exemplo, eu usei a pseudoclasse <strong>:checked</strong>, para verificar se está marcado ou não, e as que adicionam complementos antes e depois do elemento, são as <strong>:before</strong> e <strong>:after</strong>, respectivamente.</p>



<p>Mas o que você quer mesmo é o código, então para ficar fácil de você pegar, basta clicar visualizar o exemplo abaixo no JsFiddle: </p>



<script async src="//jsfiddle.net/velhobit/7Lwrzae4/3/embed/html,css,result/dark/"></script>



<p>Agora, se tudo o que você quer é o código puro, segue abaixo:</p>



<h2 class="wp-block-heading">HTML e CSS</h2>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><div class="check-radio">
  <input type="checkbox"/>
</div></textarea></pre>
</div>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >/**
* CSS do componente
**/
.check-radio{
  position: relative;
}

.check-radio input{
  -webkit-appearance: none;
  appearance: none;
  background-color: #eee;
  width: 40px;
  height: 15px;
  border-radius: 10px;
  box-shadow: inset 0 1px 5px rgba(0,0,0,.5);
}

.check-radio input:focus{
  outline: none;
  cursor: pointer;
}

.check-radio input:before{
  content: '';
  margin-top: -2.5px;
  display: block;
  width: 20px;
  height: 20px;
  background-color: white;
  border-radius: 50%;
  box-shadow: inset 0 0 0 2px #333, 0 2px 5px rgba(0,0,0,.5);
  position: absolute;
  left: 0;
  transition: left .3s ease-out;
  -webkit-transition: left .3s ease-out;
}

.check-radio input:after{
  content: 'FF';
  display: block;
  margin-top: -2.5px;
  left: 20px;
  position: absolute;
  font-size: 14px;
  font-weight: bold;
  transition: left .3s ease-out;
  -webkit-transition: left .3s ease-out;
  color: #666;
}

.check-radio input:checked{
  background-color: lime;
}

.check-radio input:checked:before{
  left: 22.5px;
  box-shadow: inset 0 0 0 2px green, 0 2px 5px rgba(0,0,0,.5);
}

.check-radio input:checked:after{
  content: 'N';
  left: 43.5px;
  color: green;
}</textarea></pre>
</div>



<p>Por hoje é só&#8230; esse post foi rapidinho&#8230; Se gostou, compartilhe e nos siga nas redes sociais. VelhoBit, no Facebook, Twitter e Instagram.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Destacando um Elemento HTML (coachmark): Efeito Spotlight ( com CSS3 e Javascript puro)</title>
		<link>https://velhobit.com.br/tutoriais/destacando-um-elemento-html-efeito-spotlight-com-css3-e-javascript-puro.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 07 Dec 2018 18:43:20 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ajuda]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[efeitos]]></category>
		<category><![CDATA[front]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UX]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1667</guid>

					<description><![CDATA[Um passo a passo de como criar um coachmark  com efeito de spotlight com CSS e Javascript puro, para ser usado em ferramentas de ajuda e tutoriais]]></description>
										<content:encoded><![CDATA[
<p><strong>Obs. Se você só quer o código pronto, pule para o final do post. Ou acesse o link do <a href="https://jsfiddle.net/velhobit/jcy5ftu4/" target="_blank" rel="noreferrer noopener" aria-label="Obs. Se você só quer o código pronto, pule para o final do post. Ou acesse o link do JSFiddle. (abre em uma nova aba)">JSFiddle</a>.</strong></p>



<p>As vezes precisamos encontrar formas de destacar elementos na tela (coachmark). Isso é muito útil principalmente quando você está tratando de pequenos tutoriais, afim de ajudar os usuários. Convém, também, entregar soluções simples e esteticamente elegantes para que ajudem no relacionamento com a ferramenta.</p>



<p>Faz algum tempo, um cliente meu quis criar um modo tutorial em seu sistema. Esse tutorial não deveria permitir que outras áreas da tela fossem clicadas até que a pessoa confirmasse que compreendeu. Como designer, lembrei que, anos atrás, no Android, a Google usava uma espécie de spotlight, mas não vi nada a respeito para websites. E, também, eu precisava que fosse dinâmico. Então eu resolvi usar meus conhecimentos de CSS3 e Javascript para usar essa ideia. E é disso que eu falarei neste tutorial.</p>



<p>Apesar de eu ter usado originalmente jQuery, para compartilhar com todos, resolvi fazer uma versão com Javascript puro, de forma que você poderá adicionar a qualquer aplicação web que você já tenha.</p>



<h2 class="wp-block-heading">Criando a Estrutura: HTML e o CSS3</h2>



<p>Para criar o efeito, vamos usar uma propriedade interessante do CSS3 chamada <strong><em>clip-path</em></strong>. O <em>clip-path</em> permite que criemos elementos vetoriais que serão usados como máscaras. <a href="https://velhobit.com.br/design/grafico-loader-radial-com-css-e-javascript-puro.html">Já utilizamos essa propriedade em um outro exemplo, no caso, sobre um loader</a>.</p>



<h2>Exemplo de uso do clip-path:</h2>
<p class="batman"></p>



<p>Dessa forma, se já não tiver, teu projeto deve possuir um container principal que é pai de todos os elementos, mas abaixo do &lt;body&gt;. Se não houver, o crie, é até uma questão lógica de organização para evitar problemas futuros. Veja um código de exemplo:</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	</head>
<body>
	<div id="container" class="container">
	</div>
</body>
</html></textarea></pre>
</div>



<p>A div <strong>container</strong>&nbsp;vai ser justamente o elemento que iremos <em>clippar</em>. Para ajudar em nosso exemplo, vamos criar um form básico dentro do container, ficando assim:</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	</head>
<body>
	<div id="container" class="container">
		 <div class="form">
		  First name:<br>
		  <input type="text" name="firstname" id="firstname" value="Mickey">
		  <br>		  <br>
		  Last name:
		  <br>
		  <input type="text" name="lastname" id="lastname" value="Mouse">
		  <br><br>
		  <input type="submit" id="submeter" value="Submit">
		  <div class="btn_ajuda">?</div>
		</div> 
	</div>
</body>
</html></textarea></pre>
</div>



<p>Para finalizar nosso HTML, vamos colocar a caixa de mensagens. Repare que no código abaixo a caixa de mensagem vai ter uma div chamada&nbsp;<em>spacer</em>. O objetivo dessa div vai ser adicionar o espaço do elemento referência, para que o código funcione também em dispositivos móveis e ela deverá ficar fora do container da aplicação. Mais à frente isso vai ficar mais bem explicado.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="html" name="mshighlighter" ><!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1">
	</head>
<body>
	<div id="container" class="container">
		 <div class="form">
		  First name:<br>
		  <input type="text" name="firstname" id="firstname" value="Mickey">
		  <br>		  <br>
		  Last name:
		  <br>
		  <input type="text" name="lastname" id="lastname" value="Mouse">
		  <br><br>
		  <input type="submit" id="submeter" value="Submit">
		  <div class="btn_ajuda">?</div>
		</div> 
	</div>

		<!-- Mensagem de Ajuda-->
		<div class="mensagem_area" id="mensagemAjuda">
			<div class="spacer"></div>
			<div class="mensagem">
				<h2></h2>
				<p></p>
				<button onclick="ocultarAjuda()">
				  OK, entendi
				</button>
			</div>
		</div>
</body>
</html></textarea></pre>
</div>



<p>Agora que o HTML está pronto, vamos para o CSS inicial. A primeira fase é estabelecer todo comportamento da div que estamos usando como container. Também precisamos adicionar uma cor ao plano de fundo, que vai ser a cor que usaremos como base para a área em lowlight.</p>



<p>A animação ficará a cargo do recurso transition do CSS3. Importante ressaltar que uma animação criada por CSS é mais leve e possui melhor frequência do que uma criada pelo Javascript. Isso porque o navegador tenta usar a renderização da GPU nesses casos. Dessa forma, vamos aplicar o parâmetro&nbsp;<em>transition</em>&nbsp;para aplicar o efeito.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >body{
		    margin: 0;
		    font-family: sans-serif;
		    background-color: #15d115;
}
		    
.container{
			background-color: white;
			min-width: 100%;
/* Obs. A largura do clip-path, abaixo, está definido
como 3840 de diâmetro, porque ultrapassa
o tamanho do 4K - O clip-path considera o raio.
Posteriormente, você poderá trabalhar com
adição de classes, se você quiser evitar
a definição inicial desse tamanho,
mas é necessário haver uma para poder
ativar a animação.*/
			clip-path: circle(1920px at center);
			-webkit-clip-path: circle(1920px at center);
		    transition: 2s ease-in-out;
		    -webkit-transition: 1s ease-in-out;

		    position: absolute;
		    min-width: 100%;
		    min-height: 100%;
}</textarea></pre>
</div>



<p>O parâmetro&nbsp;<em>position</em>&nbsp;como&nbsp;<em>absolute</em>, com suas larguras e alturas mínimas marcados como 100% servirão para emular o comportamento do&nbsp;<em>body</em>. Isso só é necessário porque alguns sistemas costumam ter áreas menores do que a primeira dobra do navegador. Nesse caso, apenas, é necessário aplicar esses três parâmetros.</p>



<p>Já para o CSS do bloco de mensagem, você pode fazer algo do jeito que preferir.<strong> Apenas é importante lembrar que esse bloco deverá ficar com </strong><em><strong>position</strong></em><strong> </strong><em><strong>absolute</strong></em><strong>, ou </strong><em><strong>fixed</strong></em>, dependendo de como for sua aplicação, para que possa se encaixar no local correto.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="css" name="mshighlighter" >.mensagem_area{
		 position: fixed;
		 opacity: 0;
		  pointer-events: none;
		  transition: 2s ease-in-out;
		  -webkit-transition: 1s ease-in-out;
		  color: white;
		    
		  display: flex;
		  justify-content: flex-start;
		  flex-wrap: wrap;
}
.mensagem_area.show{
		    opacity: 1;
		    max-width: 100%;
		    pointer-events: all;
}
.mensagem_area .spacer{
	visibility: hidden;  
}
.mensagem_area .mensagem{
		    width: 250px;
		    padding: 15px;
		    box-sizing: border-box;
 }
.mensagem_area .mensagem h2{
		    font-size: 18px;
		    font-weight: bold;
		    margin: 0;
}
.mensagem_area .mensagem p{
		    font-size: 16px;
}</textarea></pre>
</div>



<h2 class="wp-block-heading">Criando as Funções Javascript</h2>



<p>&nbsp;Agora basta que a gente crie as funções de aparecer e desaparecer o <em>spotlight</em>. Originalmente eu havia usado jQuery, pois ele possui soluções rápidas e funcionais como o <em>offset</em> nativo e <em>outerWidth</em>, mas com uma pesquisa rápida conseguir adaptar, apesar do código ter ficado um pouquinho maior.</p>



<p>O código consiste em 4 blocos:</p>



<ul class="wp-block-list"><li>Capturar largura e posição em relação ao&nbsp;<em>document</em>, do objeto referência (que será passado como parâmetro), fazendo os cálculos apropriados para adição do círculo. Você irá reparar que é usado como base o raio e não o diâmetro, pois é a referência do parâmetro&nbsp;<em>clip-path</em>;</li><li>Adicionar o clip ao container;</li><li>Adicionar os textos da mensagem a partir dos parâmetros passados;</li><li>Aplicar os estilos com os novos parâmetros. O timeout que precede a adição da classe show da mensagem existe para que o texto apareça após a transição do spotlight.</li></ul>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="js" name="mshighlighter" >function mostrarAjuda(id_obj, titulo, mensagem){
	//Pegar raio e posição
	var raio = document.querySelector('#' + id_obj).offsetWidth / 2;
	var offset = document.querySelector('#' + id_obj).getBoundingClientRect();
		offset.top = offset.top + document.body.scrollTop;
		offset.left = offset.left + document.body.scrollLeft;
	
	//Adicionar clip
	var clip = "circle(" + parseInt(raio).toString() + "px at " + parseInt(offset.left + raio).toString() + "px " + parseInt(offset.top + offset.height/2).toString() + "px)";
	
	var container = document.querySelector('#container');
		container.style.clipPath = clip;
		container.style.webkitClipPath = clip;
		
	//Textos
	document.querySelector("#mensagemAjuda h2").innerHTML = titulo;
	document.querySelector("#mensagemAjuda p").innerHTML = mensagem;
	
	//Estilos
	document.querySelector("#mensagemAjuda .spacer").style.width = parseInt(raio * 2 + offset.left).toString() + "px";
	document.querySelector("#mensagemAjuda .spacer").style.height = parseInt(raio).toString() + "px";
	document.querySelector("#mensagemAjuda").style.top = parseInt(offset.top).toString() + "px";

	setTimeout(function(){
		document.querySelector("#mensagemAjuda").classList.add("show");
	}, 1500);
	
}</textarea></pre>
</div>



<p>Por fim, basta adicionar uma função que restaure as configurações originais dos estilos e textos.</p>


<div class="my-syntax-highlighter">
<pre><textarea id="mshighlighter" class="mshighlighter" language="js" name="mshighlighter" >function ocultarAjuda(){
	//Limpar
	document.querySelector("#mensagemAjuda").classList.remove("show");
	container.style.clipPath = "circle(1920px at center)";
	container.style.webkitClipPath = "circle(1920px at center)";
	setTimeout(function(){
		document.querySelector("#mensagemAjuda h2").innerHTML = "";
		document.querySelector("#mensagemAjuda p").innerHTML = "";
	}, 2000);
}</textarea></pre>
</div>



<p>Como sempre, deixei o código completo para você testar ou copiar. No caso, o código está no <strong><em>jsfiddle</em></strong> e você pode visualizar abaixo:</p>



<script async="" src="//jsfiddle.net/velhobit/jcy5ftu4/embed/result,js,html,css"></script>



<p>Se você gostou da publicação, curta e compartilhe esta página com o maior número de pessoas. Aproveite e curta nossa página do <a href="https://www.facebook.com/velhobit/">Facebook</a>.</p>



<p><strong>ATUALIZAÇÃO: Que tal experimentar uma versão com blur, usando o html2canvas? Obs. É meio pesado. Dê preferência a usar em projetos para desktop.</strong></p>



<script async="" src="//jsfiddle.net/velhobit/y2Lfwed0/embed/result,js,html,css/dark/"></script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Como Criar Sua Própria Fonte e A Usar Como Ícone?</title>
		<link>https://velhobit.com.br/tutoriais/como-criar-sua-propria-fonte-e-a-usar-como-icone.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Thu, 29 Nov 2018 22:17:11 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[aprendizado]]></category>
		<category><![CDATA[botao]]></category>
		<category><![CDATA[criar]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design de interação]]></category>
		<category><![CDATA[design gráfico]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[ícones]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web design]]></category>
		<guid isPermaLink="false">https://bitcolor.com.br/?p=71</guid>

					<description><![CDATA[Criar fontes pode ser útil para utilizar em identidades visuais ou como ícones, para uma página ou sistema. Este tutorial mostra o processo de como criar sua própria fonte.]]></description>
										<content:encoded><![CDATA[
<p>Quem está estudando para ser designer, precisa estudar um assunto muito importante: Tipografia. E, por muitas vezes, precisa criar a própria família tipográfica, ou seja, como criar fontes. Além disso, podemos usar uma tipografia personalizada como ícones, tornando o site ou o sistema, desenvolvido em HTML5, ainda mais leve e bonito.</p>



<p>Este tutorial visa ajudar você com o processo técnico de converter os símbolos e criar sua própria fonte OTF, TTF, SVG, etc. Também um pequeno resumo de como implementar sua fonte em CSS3 para funcionar como ícone.</p>



<div class="videoWrapper"><iframe loading="lazy" src="https://www.youtube.com/embed/vqPuOnBqeS8" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>



<p>Para começar, você vai precisar instalar o Inkscape em seu computador. Baixe a&nbsp;versão mais recente do aplicativo&nbsp;<a title="Link para o Inkscape" href="https://inkscape.org/pt/" target="_blank" rel="noopener">Inkscape</a>. Ele está disponível para Windows, Linux e Mac. Caso você use o MacOSX, será necessário instalar o&nbsp;<a title="Baixe o XQuartz" href="http://xquartz.macosforge.org/landing/">XQuartz</a>.</p>



<p>Você vai precisar também de algum programa para desenho vetorial, pode usar qualquer um de sua preferência, como o Illustrator, CorelDRAW ou o próprio Inkscape.</p>



<h2 class="wp-block-heading">Crie seu símbolo para cada caractere</h2>



<p>Primeiramente, é necessário criar os glifos. Você pode utilizar o Illustrator ou qualquer outro programa de ilustrações vetoriais. Exporte o arquivo no formato SVG. Você pode, se quiser, colocar todas as ilustrações no mesmo arquivo. Os desenhos não deverão ter contornos, somente preenchimento e devem ser compostos somente de preto.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/icone-illustrator-tutorial-fonte.jpg" alt="Fonte Criada no Illustrator"/></figure>



<h2 class="wp-block-heading">Anexando Glifos aos Caracteres no Inkscape</h2>



<p>No Inkscape, selecione&nbsp;<strong>File&gt;New&gt;fontforge_glyph</strong>. Essa opção adiciona as predefinições necessárias para criação coerente da família tipografica.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-selecionar-fontforge-tutorial-fonte.jpg" alt="New FontForge_Glyph"/></figure>



<p>Com o documento criado, importe os glifos (<strong>File&gt;Import</strong>) criado anteriormente por você. Caso você tenha feito todos os glifos no mesmo arquivo, o Inkscape irá importar todos agrupados na organização que foi salvo.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-importar-svg-tutorial-fonte.jpg" alt="Importar Arquivo no Inkscape"/></figure>



<p>Quando o arquivo é importado, ele vem agrupado e com algumas configurações que o Inkscape não reconhece corretamente.<br>Siga os passos abaixo para não haver erros e incompatibilidades:</p>



<p>Selecione o objeto, clique com o botão direito e escolha Ungroup. Faça isso quantas vezes for necessário até o objeto estar totalmente desagrupado;</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-ungroup-tutorial-fonte.jpg" alt="Desagrupar"/></figure>



<p>Ainda com o objeto selecionado, vá no menu&nbsp;<strong>Path&gt;Combine</strong>;</p>



<p>Em seguida vá no menu&nbsp;<strong>Path&gt;Union</strong>;</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-combine-union-tutorial-fonte.jpg" alt="Combinar e Unir"/></figure>



<p>Essas ações são necessárias para que o glifo se torne um unico objeto e possa ser anexado corretamente ao caractere escolhido.</p>



<p>O próximo passo é abrir a tela de edição de fontes. Selecione o menu&nbsp;<strong>Text&gt;SVG Font Editor</strong>.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-svg-font-editor-tutorial-fonte1.jpg" alt="Abrir o SVG Font Editor"/></figure>



<p>Será aberto o painel SVG Font Editor, que permite você criar uma fonte no formato SVG (interpretado pela maioria dos smartphones). A primeira coisa a se fazer é criar um nome e família para a fonte. No painel de edição de fonte, e com a guia&nbsp;<strong>GLOBAL SETTINGS</strong>&nbsp;ativada, clique &nbsp;no botão New. Em seguida, clique duas vezes no nome que foi gerado para que possa modificar e colocar o nome que você quiser.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-colocar-nome-fonte.jpg" alt="Colocando Nome na Fonte"/></figure>



<p>Agora, ainda no mesmo painel, abra a guia&nbsp;<strong>GLYPH</strong>&nbsp;e clique no botão&nbsp;<strong>Add Glyph</strong>, ele irá criar uma nova linha na tabela Glyph name/Matching string. Você deve dar dois cliques no nome criado para editar o nome. Ao lado, você deve dar dois cliques no espaço vazio (logo abaixo de Matching String) e você descobrirá (sim, está escondido) que você pode editar esse campo. Simplesmente digite a letra a qual você quer assimilar o glifo.</p>



<p>No exemplo a seguir, assimilei o meu glifo de Editar a letra &#8220;e&#8221; minúscula. Vale salientar que você pode vincular a qualquer caractere que deseja, inclusive caracteres especiais como #,ø,®,†, etc.</p>



<p>Por fim, selecione o objeto (ou grupo) que você quer vincular ao caractere e clique no botão Get curves from selection. Para verificar se foi adicionado corretamente, digite, em Preview Text, o caractere que deseja verificar.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/inkscape-svg-font-editor-tutorial-fonte.jpg" alt="Relacionar Fonte ao Caractere"/></figure>



<p><strong>ATENÇÃO</strong>: Caso o ícone não apareça no Preview Text corretamente, como aparecer pequeno ou simplesmente não aparecer, você deve repetir os passos acima de&nbsp;<strong>Ungroup, Combine e Union do objeto.</strong>&nbsp;Provavelmente o objeto não foi preparado corretamente e por isso não relacionou como deveria.</p>



<p>Salve o arquivo normalmente. No formato padrão de&nbsp;<strong>SVG do Inkscape.</strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/icone-salvar-tutorial-fonte.jpg" alt="Salvar Fonte Criada no Inkscape"/></figure>



<h2 class="wp-block-heading">Transformando a fonte SVG em OTF ou TTF</h2>



<p>O arquivo SVG está pronto. Agora precisamos converter para uma fonte usável pelo sistema operacional. Há muitos sites que fazem essa conversão.</p>



<p>O que recomendo que faça&nbsp;a conversão é o&nbsp;<a title="Abrir o Free Font Converter" href="http://www.freefontconverter.com/" target="_blank" rel="noopener">FreeFontConverter</a>. Basta importar o seu arquivo SVG, escolher o formato (Aconselho OTF, primeiramente, que tem melhor acabamento) e depois clicar em convert. Ele fará o download automaticamente da fonte.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/selecionar-converter-tutorial-fonte.jpg" alt="Converter a Fonte em OTF"/></figure>



<p><strong>ATENÇÃO: Caso dê erro durante a conversão, você pode tentar salvar o arquivo em SVG Optmized, no Inskscape.</strong></p>



<p>Você pode ver que a fonte pode ser instalada normalmente no seu sistema operacional.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/fonte-convertida-tutorial-fonte.jpg" alt="Fonte Convertida"/></figure>



<h2 class="wp-block-heading">Usando a fonte personalizada em CSS e usando-a como ícone</h2>



<p>Para preparar um pacote com sua fonte personalizada, para ser usada em um site, o site&nbsp;<strong>FontSquirrel</strong>&nbsp;disponibiliza o&nbsp;<a title="Site Para Converter Fonts" href="http://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener">WebfontGenerator</a>. Para usá-lo basta enviar a sua fonte em OTF ou TTF, concorde com os termos e gere o kit.</p>



<figure class="wp-block-image"><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/font-face-tutorial-fonte.jpg" alt="Gerador de Fontes da FontSquirrel"/></figure>



<p>Feito o download, está na hora de incorporamos a fonte no seu CSS. Para isso, basta você copiar as fonts que foram geradas no kit para uma pasta font (ou outra de sua preferência) no seu site e chamar via CSS.</p>



<pre class="wp-block-preformatted prettyprint">@font-face {
    font-family: "minhafonteregular";

    src: url("fonts/minhafonte-webfont.eot");
    src: url("fonts/minhafonte-webfont.eot?#iefix") format("embedded-opentype"),
         url("fonts/minhafonte-webfont.woff") format("woff"),
         url("fonts/minhafonte-webfont.ttf") format("truetype"),
         url("fonts/minhafonte-webfont.svg#minhafonteregular") format("svg");

    font-weight: normal;
    font-style: normal;
}</pre>



<p>Para usar como ícone em um botão (ou em qualquer outro componente HTML5), basta você usar a opção content, do CSS3, como descrito abaixo:</p>



<pre class="wp-block-preformatted prettyprint">button.editar{
        padding:10px;
}

button.editar:before{
        font-family: "minhafonteregular";
        font-size:36px;
        content:"e";
        -webkit-content:"e";
        -moz-content:"e";
        -o-content:"e";
        -ms-content:"e";
}</pre>



<p>E basta adicionar a tag Button com a classe determinada:</p>



<p><strong>&lt;button class=&#8221;editar&#8221;&gt; &lt;/button&gt;</strong></p>



<p><span style="color: #800000;"><strong>ATENÇÃO (iOS): Devido a padrões do iOS, o ícone só vai aparecer se tiver uma cor de fundo (devido ao webkit-appearance), se você quiser, entretanto, usar a cor padrão, utilize o CSS abaixo:</strong></span></p>



<p><span style="color: #800000;"><strong>button{<br>background-color: buttonface;<br>}</strong></span></p>



<p>Abaixo, você pode ver o exemplo usado no vídeo (no topo do post), que tem uma forma um pouco diferente de usar.</p>



<center><button></button></center>



<p>Qualquer dúvida, deixe um comentário, mande uma mensagem no skype ou por email. Siga @velhobit no Twitter e curta nossa página no Facebook.</p>



<p>Até o próximo Tutorial.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Adobe Lightroom CC &#8211; O melhor app para tirar fotos com o smartphone</title>
		<link>https://velhobit.com.br/design/adobe-lightroom-cc-o-melhor-app-para-tirar-fotos-com-o-smartphone.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Wed, 14 Nov 2018 02:31:29 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[adobe lightroom]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[aplicativo]]></category>
		<category><![CDATA[aplicativo móvel]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[creative cloud]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[imagem]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[lightroom]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1616</guid>

					<description><![CDATA[O Adobe Lightroom CC é um app criado para tirar o máximo da câmera do smartphone. Com opções profissionais, alcança resultados similares a câmeras profissionais.]]></description>
										<content:encoded><![CDATA[
<p>Quando os primeiros celulares com câmera apareceram, eles possuíam sensores simples e baixa qualidade. Com a chegada dos smartphones, a câmera começou a ser uma das características mais exigidas em qualidade pelos consumidores. Porém, as técnicas de pós-processamento e compressão aplicadas nas fotos podem entregar um resultado indesejado ou com uma qualidade aquém do que a câmera pode entregar.</p>



<p>Para resolver esse ponto, diversos apps foram lançados. A Adobe, com conhecimento de causa, resolveu lançar uma versão do Adobe Lightroom CC para smartphones e adicionou a opção de <strong>câmera profissional</strong>. O Lightroom já é o aplicativo para desktop mais usado por fotógrafos profissionais há  anos e agora a versão para mobile e desktop compartilham as mesmas opções (<a href="https://velhobit.com.br/noticias/design-noticias/photoshop-completo-no-ipad-como-assim-adobe.html" target="_blank" rel="noreferrer noopener" aria-label="Para resolver esse ponto, diversos apps foram lançados. A Adobe, com conhecimento de causa, resolveu lançar uma versão do Adobe Lightroom CC para smartphones e adicionou a opção de câmera profissional. O Lightroom já é o aplicativo para desktop mais usado por fotógrafos profissionais há  anos e agora a versão para mobile e desktop compartilham as mesmas opções (assim como está acontecendo com diversos outros programas da Adobe). (opens in a new tab)">assim como está acontecendo com diversos outros programas da Adobe</a>).</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Lightroom CC   O melhor app para tirar fotos no iPhone e no Android" width="500" height="281" src="https://www.youtube.com/embed/PCvkWr8sJC0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption>Caso não queira ler o texto, assista o vídeo vertical demonstrando o uso do aplicativo.</figcaption></figure>



<p>O Adobe Lightroom CC está disponível para Android e iOS de forma <strong>gratuita</strong>. No caso do Android, algumas funções disponíveis estarão disponíveis dependendo do modelo aparelho. Essa distinção do Android acontece por causa da forma com que o app comunica-se com a câmera, obrigando o desenvolvedor a criar algumas soluções específicas por aparelho. Por isso, consulte a página do GooglePlay, caso use Android, para verificar quais dispositivos possuem as funções completas. No caso do iOS, todas as funções estão disponíveis para os dispositivos com ao menos 12Megapixels na câmera.</p>



<h2 class="wp-block-heading">Câmera</h2>



<p>Assim que você abre o app do Adobe Lightroom CC, você verá, no canto inferior direito, a opção de abrir a câmera. Além disso, ele já carrega as fotos mais recentes e álbuns.&nbsp;</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1.jpg" alt="Tela inicial do Adobe Lightroom" class="wp-image-1618" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/Lightroom-1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>De início temos uma câmera comum, com funções comuns da maioria das câmeras digitais, como temporizador e grade. Tirar uma foto com as funções automáticas da câmera já apresentam uma qualidade muito boa em relação aos apps de câmeras normais e até os nativos de alguns smartphones.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2.jpg" alt="Câmera do Adobe Lightroom" class="wp-image-1619" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-2-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>A primeira diferença entre as fotos tiradas com a câmera normal e as câmeras dos smartphone é a possibilidade de tirar fotos em DNG. DNG é uma sigla para <em>Digital Negative</em> (Negativo Digital), um formato RAW da Adobe. RAW são formatos de arquivos raiz, ou seja, são as fotos tiradas diretamente pela câmera sem qualquer compressão ou pós-processamento. A vantagem tirar fotos em RAW é que elas são mais ideais para uma edição posterior, pois guardam informações que normalmente são perdidas com a compressão JPG, principalmente quanto a luminosidade. Como nem tudo são flores, esse formato ocupa mais espaço do seu smartphone, então é aconselhável que você use smartphones com ao menos 32GB de espaço interno ou cartão de memória.</p>



<p><strong>Mas atenção, nem todo smartphone Android compatível com o app possui essa opção. Consulte a página do Adobe Lightroom CC, na Google Play Store para mais detalhes.</strong></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3.jpg" alt="Para ativar o modo DNG, clique na sigla (JPG ou DNG) no topo ou lateral do app (dependendo da orientação)" class="wp-image-1620" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-3-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>Para ativar o modo DNG, pressione a sigla (JPG ou DNG) no topo ou lateral do app (dependendo da orientação)</figcaption></figure>



<p>Dentre as opções comuns disponível em todas as áreas da câmera, inclusive no modo automático, vale destacar o <strong>Recorte de Layout</strong>.&nbsp; Trata-se de uma opção para demarcar com listras todos os pontos da imagem que estão em branco absoluto. Em termos de fotografia, isso é importante para saber onde a foto pode estar &#8220;estourando&#8221;, indicando áreas muito brancas que não poderão ser editadas posteriormente (pois a diminuição do brilho só a deixaria cinza).</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1.jpg" alt="" class="wp-image-1622" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-4-1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Mas onde o Lightroom se destaca de verdade é no modo <strong>PRO</strong>. O modo profissional do Adobe Lightroom CC dá opções de exposição, velocidade do obturador, ISO, compensação de cor e, o mais legal, foco manual. Por questão de objetividade, vamos nos concentrar nas funções principais para uma melhor foto em termos de fidelidade, podendo você depois explorar melhor as ferramentas.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5.jpg" alt="" class="wp-image-1623" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-5-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>O modo de exposição permite você adicionar ou remover luminosidade à imagem. O controle de Exposição está definido pelo botão <strong>Exp</strong>, no canto inferior ou lateral direita, dependendo da orientação. Basicamente é você deixar a imagem mais clara ou mais escura.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6.jpg" alt="Controle de Exposição" class="wp-image-1624" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-6-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Uma das ferramentas mais importantes é a <strong>Velocidade do Obturador</strong>, definido pelo botão <strong>Sec</strong>. A velocidade do Obturar controla o tempo em que o obturador vai ficar aberto para gravar a imagem no sensor. Isso significa que quanto mais tempo aberto, mais luz e, por consequência, mais informação será armazenada.</p>



<p>A velocidade, nessa ferramenta, é definida pela fração de segundo, indo de 1/10000 à 1/4. Quanto mais rápido, menos luz vai entrar, mas você conseguirá pegar imagens onde tem mais movimento (como corridas, eventos esportivos, etc. &#8211; use em ambientes claros), e quanto mais lento mais luz vai entrar, o que deixará a foto bem mais nítida, porém você deverá deixar a câmera imóvel&nbsp; &#8211; ideal uso de tripé &#8211; por mais tempo. A velocidade baixa é excelente para fotos em locais mais escuros (dispensando, muitas vezes, até o flash), natureza morta e objetos que exijam muitos detalhes. Você deverá ajustar essa configuração de acordo com cada caso.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7.jpg" alt="Controle de Velocidade do Obturador" class="wp-image-1625" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-7-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>A segunda função mais importante é o <strong>Foco Manual</strong>, definido pelo ícone <strong>[+]</strong>. Por padrão o foco está no automático e pode ser definido com o toque na tela, como a câmera nativa. Porém, você poderá controlar o foco manualmente, mesmo com smartphone de apenas uma câmera, e isso dá resultados muito interessantes. Vale salientar que isso é um foco real e não um pós-processamento comum em muitos aparelhos. A linha do foco vai de mais perto (ideal para macros) para mais longe (ideal para imagens em campos abertos), que você pode alternar pelo ponto que você deseja que seja o seu assunto da foto.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1.jpg" alt="Foco manual Adobe Lightroom CC" class="wp-image-1626" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-foco-1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Você deve ter reparado que o objeto em foco ficou com um contorno verde. Essa detecção de bordas é fundamental para você entender bem onde está o foco. Diferente de câmeras profissionais, que possuem o visor (Viewfinder) &#8211; o buraquinho para colocar o olho &#8211; o smartphone é totalmente dependente da tela. Como uma tela possui limitações, as bordas ajudam a ter mais certeza de onde está o foco da imagem.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1.jpg" alt="" class="wp-image-1629" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/foco-lightroom-2-1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Lembrando que o resultado final, obviamente, não gravará as linhas de bordas.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1.jpg" alt="" class="wp-image-1630" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-1-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2.jpg" alt="" class="wp-image-1631" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo2-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3.jpg" alt="" class="wp-image-1632" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-photo-3-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>O último modo a ser apresentado é o HDR. O&nbsp;High Dynamic Range (HDR) é uma técnica de sobreposição de diversas fotos tiradas em exposições diferentes, que são mescladas para tirar uma foto mais natural.</p>



<p>Quando  olhamos para uma parede com uma janela, ou o céu através dos galhos das árvores, nossos olhos e nosso cérebro conseguem interpretar as nuances de luminosidade em cada assunto. A lente, entretanto, não consegue fazer o mesmo, precisando focar a luminosidade a partir de um ponto específico. Quando você alterna a exposição você está justamente modificando o ponto de qual luminosidade o sensor deve se basear.</p>



<p>Para poder usar o modo HDR é importante que o usuário use um tripé ou não se mexa, pois várias fotos serão tiradas em um curto intervalo de tempo, em exposições diferentes. O processamento do HDR ocorre aos poucos, em plano de fundo, pelo aplicativo, de forma que poderá demorar um pouco para a imagem aparecer na biblioteca. Esse processamento consiste na junção inteligente dessas imagens ao ponto que seja ajustado para que os tons fiquem mais fiéis ao olho humano. O Adobe Lightroom CC ainda irá fazer um ajuste automático da imagem, que poderá ser desfeito ou modificado de acordo com a vontade do fotógrafo.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1.jpg" alt="Modo HDR" class="wp-image-1633" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>No modo HDR você ainda tem ainda algumas ferramentas, como foco e exposição.</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado.jpg" alt="Resultado HDR" class="wp-image-1634" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/hdr-resultado-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>&nbsp;Foto após o processamento do HDR</figcaption></figure>



<h2 class="wp-block-heading">Ferramentas de Edição</h2>



<p>Após tirar a fotografia, você provavelmente irá querer ajustar brilho, contraste, nitidez, cores, etc. O Adobe Lightroom CC mobile traz as mesmas opções que estão incluídas na versão desktop. Para quem é assinante da Adobe, ainda tem algumas opções a mais, mas iremos nos concentrar nas principais opções disponíveis na versão gratuita.</p>



<p>Entretanto, se você possuir um dos planos, a foto será sincronizada com o Adobe Cloud, ficando disponível na versão web ou desktop do Lightroom, podendo você, se for de sua preferência, editar a foto no iPad, Tablet Android ou no computador.</p>



<p>Para iniciar a edição, basta voltar para a biblioteca e escolher a foto que você deseja editar. Lembre-se que imagens em DNG terão um resultado melhor para edição.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca.jpg" alt="Biblioteca do Lightroom" class="wp-image-1635" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/biblioteca-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao.jpg" alt="Foto de acerola" class="wp-image-1636" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/ferramentas-edicao-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Iniciando pelo controle de luminosidade, o usuário poderá editar o brilho, contraste e pontos claros e escuros específicos na imagem. Apenas com uma foto RAW (neste caso, DNG) você vai conseguir realmente clarear uma foto escura. Se você tentar fazer isso com uma foto JPG, por conta da compactação, simplesmente você vai ter um acinzentado e não os tons reais de cores da imagem.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade.jpg" alt="Controle de luminosidade" class="wp-image-1637" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-luminosidade-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Quanto ao controle de cores, vale uma observação importante. Além de temperatura, matiz e outras opções mais comuns, você vai encontrar a opção de <strong>Vibratilidade</strong> e a de <strong>Saturação</strong>.</p>



<p>Enquanto a Saturação define realmente a intensidade da cor, indo de tons de cinza até cores extremamente intensas, a Vibratilidade aumenta a saturação das cores menos saturadas para que fiquem mais próximas as mais saturadas, deixando a imagem mais homogênea. Quando diminuída, por exemplo, pode previnir que a cor de pele fique muito saturada em imagens muito coloridas (como em fotos tiradas em praias).</p>



<p>A qualidade das cores da imagem vai depender, principalmente, no ajuste refinado entre saturação e vibratilidade. A boa escolha desses tons vai resultar em uma imagem de qualidade ou uma imagem com cores berrantes ou desbotadas.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1.jpg" alt="Alta Vibração e menos Saturação" class="wp-image-1638" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores1-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>Alta Vibração e menos Saturação</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2.jpg" alt="Alta Saturação e menos Vibração" class="wp-image-1639" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores2-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>Alta Saturação e menos Vibração</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores.jpg" alt="Tons intensos, mas mais homogêneos" class="wp-image-1640" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-cores-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption>Tons intensos, mas mais homogêneos</figcaption></figure>



<p>O controle de <strong>Nitidez</strong> é extremamente importante, não apenas pelo que o próprio nome diz (aumentar a nitidez da imagem), como é a área onde se configura o <strong>redutor de ruído</strong>. Quanto menos luz é captada pelo sensor, mais ruído pode ser causado na imagem. Esse ruído pode atingir toda a composição geral da imagem ou apenas ser variações de cores. Você pode ajustar o redutor de ruído direto nessa ferramenta de Nitidez. Vale lembrar que quanto mais nitidez, mais redução de ruído você deverá usar.</p>



<p>Fotos tiradas com menor tempo de abertura do obturador tende a possuir mais ruídos.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez.jpg" alt="Opções de Nitidez" class="wp-image-1641" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-nitidez-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>Porém, a nitidez nem sempre é a melhor forma de efetivamente deixar a imagem mais definida. Em uma imagem eletrônica, a nitidez se refere a intensidade do pixel em relação ao pixel mais próximo. Em relação a composição da imagem como um todo, a definição dos objetos devem ser feitas a partir do contraste dos elementos, como em um desenho feito à lápis. A ferramenta <strong>Efeitos</strong> possui as opções de <strong>Claridade</strong> e <strong>Desembaçar</strong> que adicionarão uma definição maior da imagem. Para isso, ela mexerá em pontos específicos dos níveis e contrastes e sua intensidade poderá ser reduzida ou aumentada de acordo com o resultado desejado.</p>



<p>Vale salientar que o ajuste de Claridade aumenta o contraste pela mesma forma que a claridade do sol deixa a sombra mais escura e, por isso, com os elementos mais definidos.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar.jpg" alt="Desembaçar e definir" class="wp-image-1642" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/lightroom-desembacar-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<p>A foto DNG não pode ser compartilhada diretamente e não estará em seu app de fotos. Para exportar a foto, você deverá  clicar no ícone de compartilhamento e escolher a opção desejada. Ao  salvar no rolo da câmera, o Adobe Lightroom CC irá perguntar se você quer salvar em uma resolução mais leve, para publicar em mídias sociais, ou com a maior resolução possível, o que dependerá da quantidade de megapixels de seu dispositivo.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/exportar.jpg" alt="Exportar foto" class="wp-image-1643" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/exportar.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="720" src="https://velhobit.com.br/wp-content/uploads/2018/11/exportar2.jpg" alt="Opções de Exportação" class="wp-image-1644" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/exportar2.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar2-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar2-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar2-1024x576.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/exportar2-600x338.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<h2 class="wp-block-heading">Concluindo</h2>



<p>Tirar fotos com o smartphone, de forma mais profissional, é ideal para quem trabalha com social media, websites, e-commerces e outros ambientes que exijam o compartilhamento rápido digital. Com configurações mais refinadas,  é possível chegar a fotografias bem próximas a câmeras profissionais ou, ao menos, suficientes para a maioria dos casos.</p>



<p>O que vimos aqui foram as principais ferramentas, com dicas para melhor qualidade de foto. O ideal é que você pratique, teste, experimente a maior quantidade possível de opções e ferramentas, para chegar no resultado ideal para você.</p>



<p><strong>O Adobe Lightroom CC é gratuito, mas há mais opções disponíveis para quem usa qualquer um dos planos da Adobe.</strong></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1280" height="960" src="https://velhobit.com.br/wp-content/uploads/2018/11/001.jpg" alt="" class="wp-image-1645" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/001.jpg 1280w, https://velhobit.com.br/wp-content/uploads/2018/11/001-400x300.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/11/001-768x576.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/11/001-1024x768.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/001-600x450.jpg 600w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="2208" height="1242" src="https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827.png" alt="" class="wp-image-1646" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827.png 2208w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827-400x225.png 400w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827-768x432.png 768w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827-1024x576.png 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2827-600x338.png 600w" sizes="auto, (max-width: 2208px) 100vw, 2208px" /><figcaption>Dica: Você pode usar uma lente macro simples para tirar foto de animais pequenos, com ajuda do foco manual e da abertura do obturador.</figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="2208" height="1242" src="https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829.png" alt="" class="wp-image-1647" srcset="https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829.png 2208w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829-400x225.png 400w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829-768x432.png 768w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829-1024x576.png 1024w, https://velhobit.com.br/wp-content/uploads/2018/11/IMG_2829-600x338.png 600w" sizes="auto, (max-width: 2208px) 100vw, 2208px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Como Selecionar o Item de Uma Tabela HTML</title>
		<link>https://velhobit.com.br/tutoriais/como-selecionar-o-item-de-uma-tabela-html.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Tue, 26 Jun 2018 22:29:47 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[experiência]]></category>
		<category><![CDATA[front]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[interface do usuário]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tabela]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1398</guid>

					<description><![CDATA[Um tutorial rapidinho para mostrar como selecionar as linhas de uma tabela HTML simples. Para isso, usamos um pouco de CSS e Javascript puro.]]></description>
										<content:encoded><![CDATA[<p>Uma dúvida foi postada no grupo de <a href="https://www.facebook.com/groups/designdesenvolvimento/" target="_blank" rel="noopener">Design e Programação</a> de nossa página, lá no Facebook, hoje. Essa pergunta era referente a como selecionar de uma linha de uma tabela HTML?</p>
<p>Para tal, basta usar um pouco de Javascript e CSS.</p>
<h2>Montando a Tabela</h2>
<p>Vamos montar, para testar, uma tabela simples, respeitando a semântica HTML básica. Vamos aproveitar para colocar logo um botão, que vai ser por onde podemos visualizar os dados da linha selecionada:</p>
<pre class="prettyprint">&lt;table id='minhaTabela'&gt;
     &lt;thead&gt;
          &lt;tr&gt;
               &lt;th&gt;ID&lt;/th&gt;
               &lt;th&gt;Nome&lt;/th&gt;
               &lt;th&gt;Idade&lt;/th&gt;
          &lt;tr&gt;
     &lt;/thead&gt;
     &lt;tbody&gt;
          &lt;tr&gt;
               &lt;td&gt;01&lt;/td&gt;
               &lt;td&gt;Rodrigo&lt;/td&gt;
               &lt;td&gt;33&lt;/td&gt;
               &lt;/tr&gt;
          &lt;tr&gt;
               &lt;td&gt;02&lt;/td&gt;
               &lt;td&gt;Taynara&lt;/td&gt;
               &lt;td&gt;21&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
               &lt;td&gt;03&lt;/td&gt;
               &lt;td&gt;Raveny&lt;/td&gt;
               &lt;td&gt;22&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
               &lt;td&gt;04&lt;/td&gt;
               &lt;td&gt;Sérgio&lt;/td&gt;
               &lt;td&gt;51&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
               &lt;td&gt;05&lt;/td&gt;
               &lt;td&gt;Alice&lt;/td&gt;
               &lt;td&gt;20&lt;/td&gt;
          &lt;/tr&gt;
     &lt;/tbody&gt;
&lt;/table&gt;

&lt;button id="visualizarDados"&gt;Visualizar Dados&lt;/button&gt;
</pre>
<p>Agora precisamos incluir um estilo para que a tabela fique mais elegante.</p>
<p>É importantíssimo prestar atenção ao <em>class</em> &#8220;selecionado&#8221; que vai ser a referência para o seu javascript saber qual linha está selecionada na tabela.</p>
<pre class="prettyprint">#minhaTabela{
  width:80%;
  margin:0 auto;
  border:0;
  box-shadow: 0 5px 30px darkgrey;
  border-spacing: 0;
}

#minhaTabela thead th{
  font-weight: bold;
  background-color: black;
  color:white;
  
  padding:5px 10px;
}

#minhaTabela tr td{
  padding:5px 10px;
  text-align: center;
  
  cursor: pointer; /**importante para não mostrar cursor de texto**/
}

#minhaTabela tr td:last-child{
  text-align: right;
}

/**Cores**/
#minhaTabela tr:nth-child(odd){
  background-color: #eee;
}

/**Cor quando passar por cima**/
#minhaTabela tr:hover td{
  background-color: #feffb7;
}

/**Cor quando selecionado**/
#minhaTabela tr.selecionado td{
  background-color: #aff7ff;
}

button#visualizarDados{
  background-color: white;
  border: 1px solid black;
  width:50%;
  margin: 10px auto;
  padding:10px 0;
  display: block;
  color: black;
}
</pre>
<h2>Javascript</h2>
<p>Para sermos mais justos, vamos fazer o exemplo usando Javascript puro. No nosso exemplo, vamos contemplar a opção de selecionar uma única linha ou mais de uma linha, opção determinada apenas por um parâmetro. Ainda vamos ver como manipular os dados.</p>
<p>Inicialmente, precisamos capturar a tabela e adicionar, à ação de clique, uma função que adicione ou remova a classe de seleção:</p>
<pre class="prettyprint">var tabela = document.getElementById("minhaTabela");
var linhas = tabela.getElementsByTagName("tr");

for(var i = 0; i &lt; linhas.length; i++){
	var linha = linhas[i];
  linha.addEventListener("click", function(){
  	//Adicionar ao atual
		selLinha(this, false); //Selecione apenas um
                //selLinha(this, true); //Selecione quantos quiser
	});
}
</pre>
<p>A função selLinha() vai ser responsável por adicionar ou remover a <em>class</em> &#8220;selecionado&#8221; do nó. Passamos também um parâmetro que vai determinar se poderá selecionar mais que uma linha ou apenas uma. O primeiro laço, caso múltiplos seja falso, irá apenas desmarcar todos as linhas antes de marcar a linha clicada.</p>
<pre class="prettyprint">/**
Caso passe true, você pode selecionar multiplas linhas.
Caso passe false, você só pode selecionar uma linha por vez.
**/
function selLinha(linha, multiplos){
  if(!multiplos){
  	var linhas = linha.parentElement.getElementsByTagName("tr");
        for(var i = 0; i &lt; linhas.length; i++){
           var linha_ = linhas[i];
           linha_.classList.remove("selecionado");    
        }
  }
  linha.classList.toggle("selecionado");
}
</pre>
<p>Agora vamos adicionar uma função ao clique do botão para que a gente possa visualizar os dados selecionados. Para isso, iremos justamente capturar apenas as linhas que tiverem a <em>class</em> &#8220;selecionado&#8221; e, através de um laço, vamos concatenar os valores dentro dos nós &lt;td&gt; da(s) linha(s) selecionada(s).</p>
<pre class="prettyprint">/**
Exemplo de como capturar os dados
**/
var btnVisualizar = document.getElementById("visualizarDados");

btnVisualizar.addEventListener("click", function(){
	var selecionados = tabela.getElementsByClassName("selecionado");
  //Verificar se eestá selecionado
  if(selecionados.length &lt; 1){
  	alert("Selecione pelo menos uma linha");
    return false;
  }
  
  var dados = "";
  
  for(var i = 0; i &lt; selecionados.length; i++){
  	var selecionado = selecionados[i];
    selecionado = selecionado.getElementsByTagName("td");
    dados += "ID: " + selecionado[0].innerHTML + " - Nome: " + selecionado[1].innerHTML + " - Idade: " + selecionado[2].innerHTML + "\n";
  }
  
  alert(dados);
});
</pre>
<h2>Vamos Testar?</h2>
<table id="minhaTabela">
<thead>
<tr>
<th><span style="font-weight: 400;">ID</span></th>
<th><span style="font-weight: 400;">Nome</span></th>
<th><span style="font-weight: 400;">Idade</span></th>
</tr>
</thead>
<tbody>
<tr>
<td>01</td>
<td>Rodrigo</td>
<td>33</td>
</tr>
<tr>
<td>02</td>
<td>Taynara</td>
<td>21</td>
</tr>
<tr>
<td>03</td>
<td>Raveny</td>
<td>22</td>
</tr>
<tr>
<td>04</td>
<td>Sérgio</td>
<td>51</td>
</tr>
<tr>
<td>05</td>
<td>Alice</td>
<td>20</td>
</tr>
</tbody>
</table>
<p><button id="visualizarDados">Visualizar Dados</button></p>
<p>No entanto, se você preferir ver todo código completo, acesse o JsFiddle incorporado abaixo:</p>
<p><script async src="//jsfiddle.net/velhobit/cr7wz0a4/embed/js,html,css,result/dark/"></script><br />
Gostou do post curtinho? Tem dúvidas? Deixe seu comentário e compartilhe com quem você achar que vai gostar. Aproveite para entrar no nosso grupo de <a href="https://www.facebook.com/groups/designdesenvolvimento/" target="_blank" rel="noopener">Design e Programação</a> no <a href="https://www.facebook.com/velhobit/">Facebook ou em nossa página</a>. Acompanhe-nos no <a href="https://twitter.com/velhobit/">Twitter </a>e <a href="https://instagram.com/velhobit/">Instagram</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gráfico / Loader Radial com CSS e Javascript Puro</title>
		<link>https://velhobit.com.br/tutoriais/grafico-loader-radial-com-css-e-javascript-puro.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Tue, 01 May 2018 17:24:17 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[cheat]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[graphic]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[loader]]></category>
		<category><![CDATA[loading]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1251</guid>

					<description><![CDATA[Chart (ou loader) usando CSS3 e algumas pequenas linhas de Javascript puro. Talvez não seja a melhor solução, mas é um bom exercício de lógica e o resultado é leve e responsivo.]]></description>
										<content:encoded><![CDATA[<p><span style="color: #ff9900;"><em>Disclaimer: If you are coming from an english or international chat/group, please roll to jsfiddle at the end of this post and get all comments and explanations in english or access <a style="color: #ff9900;" href="https://jsfiddle.net/velhobit/oxeynj3t/" target="_blank" rel="noopener">jsfiddle link</a>.</em></span></p>
<p>Bibliotecas de gráficos existem aos montes. A maioria pesada e com poucas (ou complexas) opções de personalização. De modo que, pensei, será que é possível usar a animação do CSS para criar um gráfico leve? Como exercício, talvez eu pudesse desenvolver uma solução de gráfico radial que pudesse funcionar bem. Esse questionamento veio a partir da pergunta de uma pessoa, em um grupo, que queria criar um loading infinito com CSS.</p>
<h2>Criando o CSS</h2>
<p>Para poder criar a animação do load, pensei em diversas formas que já são usadas como solução, como o gradient ou gambiarras com contornos, mas eles não usam realmente o conceito da animação do raio a partir do centro. Para resolver, pensei em apelar para a trigonometria. Dividi então o círculo em 4 triângulos retângulos.</p>
<p><center><br />
<img loading="lazy" decoding="async" width="700" height="700" class="aligncenter size-full wp-image-1253" style="max-width: 300px; height: auto;" src="https://velhobit.com.br/wp-content/uploads/2018/05/triangulo-circulos.png" alt="" srcset="https://velhobit.com.br/wp-content/uploads/2018/05/triangulo-circulos.png 700w, https://velhobit.com.br/wp-content/uploads/2018/05/triangulo-circulos-400x400.png 400w, https://velhobit.com.br/wp-content/uploads/2018/05/triangulo-circulos-600x600.png 600w, https://velhobit.com.br/wp-content/uploads/2018/05/triangulo-circulos-110x110.png 110w" sizes="auto, (max-width: 700px) 100vw, 700px" /></center>A partir daí podemos considerar a animação a partir de cada dos vértices da hipotenusa, se abrindo do raio, formando o triângulo retângulo, como no exemplo abaixo:</p>
<div class="triangulo"></div>
<pre class="prettyprint">&lt;style&gt;
 .triangulo{
    width: 200px;
    height: 200px;
    background-color: #c1f347;
    margin:0 auto;
    animation: triangle 3s infinite  alternate;
}

@keyframes triangle {
    from   {
        clip-path: polygon(50% 0%, 0% 100%, 0 100%);
    }
    to {
        clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    }
}
&lt;style&gt;</pre>
<p>OK, conseguimos criar os triângulos com o <em><strong>clip-path</strong></em> do CSS. Graças ao ele podemos colocar caminhos de uma imagem a partir de vértices. Mas como colocar isso nos 4 triângulos? Não faria o menor sentido colocar os triângulos um do lado do outro. Como fazer então para utilizar um caminho completo para dar o efeito de transição radial?</p>
<p>Para isso, basta fazermos um cálculo simples. Quantos vértices seriam necessários para criar um polígono que dê a volta? Bem, basta contarmos o vértices do quadrado (4) mais um ao centro que define os triângulos e mais um para fechar a animação. Ou seja, precisamos de um hexagono.</p>
<div class="hexagono"></div>
<p><!--?prettify linenums=true?--></p>
<pre class="prettyprint">&lt;style&gt;
 .hexagono{
     width: 250px;
     height: 250px;
     background-color: #f98b2a;
     margin: 0 auto;
     animation: hexagon 3s infinite  alternate;
}

@keyframes hexagon {
     from   {
          clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 0% 60%, 10% 20%);
          background-color: #2af9f7;
     }
    to {
          clip-path: polygon(50% 0%, 100% 0, 100% 60%, 100% 100%, 0 100%, 0% 60%, 0 0);
     }
}
&lt;style&gt;</pre>
<p>Agora basta manipular os vértices do hexagono para se comportar similar ao triângulo retângulo, levando os pontos do vértice, em fila, sempre ao próximo ponto do quadrado.</p>
<div class="quadrado"></div>
<pre class="prettyprint">&lt;style&gt;
 .quadrado{
    width: 250px;
    height: 250px;
    background-color: #f98b2a;
    margin:0 auto;
    animation: square 3s infinite  alternate;
}

@keyframes square {
    0%   {
        clip-path: polygon(100% 0, 100% 0%, 100% 0%, 100% 0%, 100% 0%, 50% 50%);
        background-color: #36ff9a;
    }
    25%  {
        clip-path: polygon(100% 0, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 50%);
        background-color: #fccf40;
    }
    50%{
        clip-path: polygon(100% 0, 100% 100%, 0% 100%, 0% 100%, 0 100%, 50% 50%);
        background-color: #f40696;
    }
    75%  {
        clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0%, 0 0, 50% 50%);
        background-color: #55aadd;
    }
    100% {
        clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0, 100% 0, 50% 50%);
        background-color: #36ff9a;
    }
}
&lt;style&gt;</pre>
<p>Basta colocar agora a animação como linear, para evitar as pausas (o padrão possui um ease) e adicionar um elemento acima com um <em><strong>overflow: false</strong></em> e um <em><strong>border-radius: 50%</strong></em>, de forma a ficar realmente circular:</p>
<div class="circulo"></div>
<h2>Controlando com Javascript</h2>
<p>Podemos fazer um jeitinho para que o Javascript controle a animação. Para isso, podemos usar algumas propriedades que controlam a animação. Em especial, vamos poder pausar e continuar a animação, através do parâmetro <em><strong>animationPlayState</strong></em>.</p>
<p>O código completo está disponível pelo jsFiddle. O código está todo comentado e pode ser testado diretamente abaixo:</p>
<div class="area">
<p><!--This is the Structure of your chart--></p>
<div class="chart">
<div id="radioChartContent" class="radio_chart"></div>
<div class="cap"></div>
<div id="percentValue" class="value">0%</div>
</div>
</div>
<p><!--This is just the example buttons--></p>
<div class="area"><button onclick="goTo(80)">Go To 80%</button><br />
<button onclick="goTo(20)">Go To 20%</button><br />
<button onclick="goTo(100)">Full</button><br />
<button onclick="reset()">Reset</button></div>
<p><span style="color: #ff0000;"><em><strong>Obs. Não use filtro blur ou muitas sombras se quiser compatibilidade com o Safari iOS.</strong></em></span></p>
<p><script async src="//jsfiddle.net/velhobit/ruhqy9L0/embed/result,js,html,css/dark/"></script></p>
<p>Provavelmente, esta não é a melhor solução para criação de um gráfico radial. Mas é interessante vermos que podemos desenvolver novas soluções, e mais leves, a partir de tecnologias mais recentes. Se você gostou, compartilhe, se tem alguma dúvida, comente. Aproveite para curtir nossa página do Facebook e entrar no grupo, através do link abaixo.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CSS &#8211; Como usar transition com display:block?</title>
		<link>https://velhobit.com.br/tutoriais/css-como-usar-transition-com-displayblock.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Tue, 24 Apr 2018 19:17:00 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[animação]]></category>
		<category><![CDATA[cheats]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[fiddle]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[transição]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1230</guid>

					<description><![CDATA[Uma dica sobre como ocultar e mostrar de forma suave um elemento HTML usando CSS3. Use transitions para melhorar a interação de seu front-end e torná-lo mais agradável ao usuário.]]></description>
										<content:encoded><![CDATA[<p>Todos sabemos que transições são importantes para diminuir a sensação de repentinidade para o usuário e preparar o cérebro para, aos poucos, compreender a nova informação.</p>
<p>Porém, o <strong><i> transition</i></strong> do <strong>CSS3</strong> não funciona uniformemente com todos os parâmetros. Quem nunca quis que um elemento <strong>HTML</strong> em tela sumisse aos poucos?</p>
<p>O mais comum é utilizar o bom e velho <strong>display: none;</strong>, porém este simplesmente não funciona ao aplicar um transition. Usemos a lógica de que a passagem de um bloco para um nada não é uma transição. <strong>No CSS, uma transição inicialmente precisa ser um comando baseado em números</strong>.</p>
<h2>Como usar o CSS para fazer a transição de um objeto sumir?</h2>
<p>Para realizar esta ação, vamos usar um pequeno truque. Ao invés de simplesmente não mostrar o objeto, vamos desativar sua propriedade de ser manipulável com o mouse ou toque. Para isso podemos usar a propriedade pointer-events, ficando:</p>
<pre class="prettyprint">div{
    opacity: 1;
    transition: opacity .5s linear;
}

div.hide{
    opacity: 0;
    pointer-events: none;
}</pre>
<p>Para fazer o objeto desaparecer vamos usar um pouco de JavaScript apenas para adicionar ou remover a classe CSS da div:</p>
<pre class="prettyprint">function ocultar(){
    var element = document.getElementById("idDaDiv");
          element.classList.add("hide");
}
function mostrar(){
    var element = document.getElementById("idDaDiv");
          element.classList.remove("hide");
}</pre>
<p><strong>Vamos testar?</strong></p>
<p><script async src="//jsfiddle.net/velhobit/x6gy874d/embed/result,js,html,css/dark/"></script></p>
<p>Mas e se você quiser que ele também não ocupe um espaço? Pois pode ficar um buraco perturbador. Nesse caso você pode modificar a altura do elemento para poder aproveitar melhor esse espaço. Todavia, a propriedade <em><strong>height</strong></em> não é animável (<em>talvez por possuir uma propriedade auto</em>). Para esse caso, você precisa usar o <em><strong>max-height</strong> </em>para realizar esta animação.</p>
<pre class="prettyprint">div {
  overflow:hidden;
  max-height: 200px;
  transition: max-height 1s ease-in-out;
}

div.hide {
  max-height: 0;
  pointer-events: none;
}</pre>
<p>Lembre-se que para evitar que o conteúdo seja mostrado independente da <em><strong>div</strong></em> que você vai aplicar a transição, será necessário colocar a propriedade <em><strong>overflow</strong> </em>como <em><strong>hidden</strong></em>. Também é importante salientar que a propriedade <em><strong>max-height</strong></em> só é animável caso você use as medidas fixas em pixels. Como ele determina apenas o tamanho máximo, não vai influenciar se você colocar um tamanho maior que o esperado, o que se torna funcional também para responsividade.</p>
<p><strong>Vamos Testar?</strong></p>
<p><script async src="//jsfiddle.net/velhobit/v4cmyaLw/embed/result,js,html,css/light/"></script></p>
<p>Se acredita que essa dica de CSS é útil para mais alguém, compartilhe e curta esta página!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dicas para Otimizar o Console Javascript do Navegador</title>
		<link>https://velhobit.com.br/programacao/dicas-para-otimizar-o-console-javascript.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 16 Feb 2018 03:33:00 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[como colocar cor no console]]></category>
		<category><![CDATA[como colocar imagem no console]]></category>
		<category><![CDATA[como usar]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[console do navegador]]></category>
		<category><![CDATA[console web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[dicas de web]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[navegador]]></category>
		<category><![CDATA[programar para web]]></category>
		<category><![CDATA[usar o console]]></category>
		<category><![CDATA[uso do console]]></category>
		<category><![CDATA[web aplicação]]></category>
		<category><![CDATA[webapp]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1148</guid>

					<description><![CDATA[O console do navegador é uma ferramenta importante para exibir a desenvolvedores um resultado simples de ser interpretado. Este post possui algumas dicas para você otimizar as funcionalidades dessa ferramenta.]]></description>
										<content:encoded><![CDATA[<p>Designers e desenvolvedores constantemente precisam <em>debugar</em> seus sistemas para encontrar erros ou relatar informações para outros desenvolvedores da equipe. Para otimizar o trabalho do profissional web, o <strong>Console</strong> do navegador de sua preferência permite adicionar diversas opções e comandos.</p>
<p>Se você digitar apenas console, no Console, você poderá ver a gama de Métodos que o Objeto tem disponível.</p>
<p>Neste tutorial, mostraremos alguns métodos e como utilizá-los de forma a permitir uma finalização que ajude o designer e desenvolvedor a obter respostas mais ideais para o problema. Você pode testar os comandos aqui mesmo, basta pressionar CTRL+SHIFT+I, ou simplesmente clicar com o botão direito e inspecionar elemento. Ao clicar na aba console, você poderá digitar os comandos e visualizar os resultados.</p>
<p>O método log é o mais básico e permite que você adicione uma</p>
<pre class="prettyprint">console.log("Oi Mundo");</pre>
<p>Porém o simples log de texto não necessariamente pode ser o ideal. Você pode, se assim precisar, adicionar alguma informação visual para que o log seja lido de forma mais intuitiva. Para isso, basta usar uma string de formato %c e instruções CSS. O exemplo abaixo, colocará o texto branco, negrito e com sombra:<!--?prettify linenums=true?--></p>
<pre class="prettyprint">console.log('%c Oi mundo', 'color:white; font-weight:bold; text-shadow: 0 0 1em black;font-size: 72px');</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1150" src="https://velhobit.com.br/wp-content/uploads/2018/02/oi-mundo.jpg" alt="" width="676" height="143" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/oi-mundo.jpg 676w, https://velhobit.com.br/wp-content/uploads/2018/02/oi-mundo-400x85.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/oi-mundo-600x127.jpg 600w" sizes="auto, (max-width: 676px) 100vw, 676px" /></p>
<p>Com isso é possível até mesmo adicionar imagens, através do background-image:</p>
<pre class="prettyprint">console.log('%c       ', 'font-size: 100px; background: url(http://cdn.nyanit.com/nyan2.gif) no-repeat;');</pre>
<p>Passando para um ponto mais sério, você também pode visualizar no console objetos diferentes de Strings. É possível, por exemplo, visualizar um objeto JSON, o que é algo muito funcional para visualizar o resultado de métodos AJAX.</p>
<pre class="prettyprint">console.log({teste: 'texto de teste', valor: 22})</pre>
<p>No caso de você colocar um JSON ou um array, você poderá estender e visualizar os detalhes desse objeto.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1154" src="https://velhobit.com.br/wp-content/uploads/2018/02/consolelogo.jpg" alt="" width="671" height="482" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/consolelogo.jpg 671w, https://velhobit.com.br/wp-content/uploads/2018/02/consolelogo-400x287.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/consolelogo-600x431.jpg 600w" sizes="auto, (max-width: 671px) 100vw, 671px" /></p>
<h2>Erros e Alertas</h2>
<p>Além do log, o Console também tem objetos que servem como point-breaks para testes e validações. Os métodos error() e warn() permite que você adicione informações de forma mais relevante e alertiva. Esses dois métodos também permitem usar a  string de formato %c .</p>
<pre class="prettyprint">console.error("Problema Sério");
console.warn("Problema Leve");</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1156" src="https://velhobit.com.br/wp-content/uploads/2018/02/problemas.jpg" alt="" width="792" height="222" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/problemas.jpg 792w, https://velhobit.com.br/wp-content/uploads/2018/02/problemas-400x112.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/problemas-768x215.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/problemas-600x168.jpg 600w" sizes="auto, (max-width: 792px) 100vw, 792px" /></p>
<p>Você deve notar que, ao lado da linha onde é demonstrada o alerta/erro, há uma palavra <em><strong>anonymous</strong></em>, entre parênteses. Essa informação define qual o método relacionado com a origem do erro. Por exemplo, se o erro ou alerta ocorrer dentro de um método, será mostrado o método onde ocorreu o erro.</p>
<pre class="prettyprint">var teste = function(){console.error("Oi")};
teste();</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1159" src="https://velhobit.com.br/wp-content/uploads/2018/02/teste-info.jpg" alt="" width="810" height="198" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/teste-info.jpg 810w, https://velhobit.com.br/wp-content/uploads/2018/02/teste-info-400x98.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/teste-info-768x188.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/teste-info-600x147.jpg 600w" sizes="auto, (max-width: 810px) 100vw, 810px" /></p>
<p>Essa informação é extremamente útil para auxiliar o desenvolvedor a saber qual a origem do problema.</p>
<h2>Identação</h2>
<p>Outra opção muito útil para definir detalhes no log é a identação. Na verdade, é uma organização em grupo e subgrupos das informações. Dessa forma, o desenvolvedor pode apresentar dados mais organizados para o testador.</p>
<pre class="prettyprint">console.group("Frases");
console.group("Saudações");
console.log("Oi!");
console.log("Olá!");
console.groupEnd();
console.group("Despedidas");
console.log("Tchau!");
console.log("Até mais.");
console.groupEnd();</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1161" src="https://velhobit.com.br/wp-content/uploads/2018/02/grupo-console.jpg" alt="" width="811" height="304" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/grupo-console.jpg 811w, https://velhobit.com.br/wp-content/uploads/2018/02/grupo-console-400x150.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/grupo-console-768x288.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/grupo-console-600x225.jpg 600w" sizes="auto, (max-width: 811px) 100vw, 811px" /></p>
<h2>Tabelas</h2>
<p>O método table() permite você mostrar informações de dados em uma tabela. Ele é um método muito útil para ler objetos, JSON e vetores. De forma automática, esse método irá reconhecer os dados e organizá-los nessa tabela. Se por acaso você passar um array, as chaves mostradas serão apenas os índices numéricos.</p>
<pre class="prettyprint">console.table({'Dia': '10:00', 'Noite': '22:00'});</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1163" src="https://velhobit.com.br/wp-content/uploads/2018/02/tabela-log.jpg" alt="" width="806" height="234" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/tabela-log.jpg 806w, https://velhobit.com.br/wp-content/uploads/2018/02/tabela-log-400x116.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/tabela-log-768x223.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/tabela-log-600x174.jpg 600w" sizes="auto, (max-width: 806px) 100vw, 806px" /></p>
<h2>Calcular Tempo</h2>
<p>O cálculo de tempo é fundamental para medir performance.  O método time() permite usar uma etiqueta para poder iniciar e finalizar uma contagem de tempo. Para isso, basta seguir o exemplo abaixo:</p>
<pre class="prettyprint">console.time("calcularTempo");
for(var i; i &lt; 100; i++){

}
console.timeEnd("calcularTempo");</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1165" src="https://velhobit.com.br/wp-content/uploads/2018/02/calcular-tempo.jpg" alt="" width="789" height="222" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/calcular-tempo.jpg 789w, https://velhobit.com.br/wp-content/uploads/2018/02/calcular-tempo-400x113.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/calcular-tempo-768x216.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/calcular-tempo-600x169.jpg 600w" sizes="auto, (max-width: 789px) 100vw, 789px" /></p>
<p>Esse tempo será calculado baseado no tempo que a máquina cliente demora para realizar determinada ação, por isso, esse valor pode variar de computador para computador.</p>
<h2>Strings de Substituição</h2>
<p>Além do %c, usado para CSS, você pode usar outras Strings com objetivos específicos.</p>
<table class="standard-table">
<tbody>
<tr>
<td class="header"><strong>String           </strong></td>
<td class="header"><strong>Descrição</strong></td>
</tr>
<tr>
<td>%o or %O</td>
<td>Exibe o objeto e permite você visualizar o objeto ao clicar nele.</td>
</tr>
<tr>
<td>%d or %i</td>
<td>Exibe um inteiro.</td>
</tr>
<tr>
<td>%s</td>
<td>Apenas uma string.</td>
</tr>
<tr>
<td>%f</td>
<td>Exibe um ponto flutuante</td>
</tr>
</tbody>
</table>
<p>Dependendo do navegador (como o Firefox), você pode ter opções adicionais de máscara quanto aos valores. Para saber os detalhes, você precisa verificar na documentação do navegador, mas são muito similares as Strings usadas no console em C e no Java.</p>
<p>Por exemplo:</p>
<pre class="prettyprint">console.log("O valor da compra de %d %s é de %f, com os dados %o", 3,'carros',38500.30,{'carro':'fusca'});</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1167" src="https://velhobit.com.br/wp-content/uploads/2018/02/exemplo-log-carro.jpg" alt="" width="780" height="220" srcset="https://velhobit.com.br/wp-content/uploads/2018/02/exemplo-log-carro.jpg 780w, https://velhobit.com.br/wp-content/uploads/2018/02/exemplo-log-carro-400x113.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/02/exemplo-log-carro-768x217.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/02/exemplo-log-carro-600x169.jpg 600w" sizes="auto, (max-width: 780px) 100vw, 780px" /></p>
<h2>Concluindo</h2>
<p>O uso apropriado do console do navegador pode ajudar os desenvolvedores a fazerem testes e obterem resultados mais fiéis destes. Além disso, pode exibir mensagens importantes para alertar um usuário leigo a não mexer nessas opções (como faz o Facebook). De qualquer forma, o conhecimento das opções do console são fundamentais para qualquer profissional web que trabalha com front-end.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 Dicas Rápidas de CSS para Facilitar Leitura de Conteúdo do seu Site ou Blog</title>
		<link>https://velhobit.com.br/design/3-dicas-rapidas-de-css-para-facilitar-leitura-de-conteudo-do-seu-site-ou-blog.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Fri, 26 Jan 2018 00:01:29 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[design gráfico]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[espaçamento]]></category>
		<category><![CDATA[facilidade]]></category>
		<category><![CDATA[fontes]]></category>
		<category><![CDATA[leitura]]></category>
		<category><![CDATA[texto]]></category>
		<category><![CDATA[tipografia]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webfonts]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1112</guid>

					<description><![CDATA[Dicas para deixar a leitura do seu site e blog ainda mais elegante e fácil, apenas com um pouco de CSS e paciência]]></description>
										<content:encoded><![CDATA[<p>Quem trabalha com sites, principalmente com blogs, deve-se focar muito na facilidade da leitura. Por isso, resolvemos separar para vocês algumas dicas para quem trabalhar com templates ou blogs otimizarem seus textos de forma a ficar melhor para o leitor.</p>
<h2>1 &#8211; Tamanhos de Fontes, Espaçamentos e Entre Linhas</h2>
<p>Uma das coisas mais irritantes em blogs e sites de notícia é a forma como as vezes eles comprimem as fontes para poder encaixar mais anúncios. Esses textos acabam por ser cansativos de ler e, por conta disso, vale a pena investir um pouco de tempo e cuidado para melhorar essa leitura.</p>
<p>Cada família tipográfica possui seu próprio espaçamento e tamanho, por isso, as medidas podem variar de acordo com a que você escolher usar. Muitos sites utilizam tamanhos de 12px com line-height normal. Apesar de caber mais informações dessa forma, isso causa uma péssima experiência.</p>
<p>No geral, devemos aumentar o espaçamento entre-linhas e manter um bom tamanho de fonte.</p>
<p>Obs. É importante declarar a metatag para o escalonamento, em seu &lt;header&gt;:</p>
<pre class="prettyprint">&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</pre>
<p>O espaçamento e tamanho da fonte pode variar dependendo de sua preferência. O blog do Google, por exemplo, usa algo como:</p>
<pre class="prettyprint">.post p{
    font-size: 16px;
    letter-spacing: 0;
    line-height: 26px;
}</pre>
<p>O importante é que se caso você queira aumentar ou diminuir a fonte, por algum motivo, você deve proporcionalmente alterar também o line-height.</p>
<p>Em algumas tipografias, pode ser necessário diminuir ou aumentar o letter-spacing. Essa propriedade indica o espaçamento entre as letras. Sites que usam uma tipografia serifada pode se beneficiar, em alguns casos, do aumento do letter-spacing. O contrário para algumas famílias sem serifa e scripts.</p>
<pre class="prettyprint">.post p{
     font-size: 17px;
     line-height: 1.52947;
     letter-spacing: -.021em;
}</pre>
<p>Não há problemas em usar frações ou unidades de medida quebradas. Ao contrário, geralmente esses pequenos pontos o ajudam a fazer a tipografia melhor.</p>
<p>Para testar com mais facilidade, você pode usar o console do Google Chrome (botão direito e inspecionar elemento), mudando os valores em tempo real.</p>
<h2>2 &#8211; Justificação de Texto e Separação Silábica</h2>
<p>Sabemos que em desktops e laptops, temos espaço horizontal sobrando. Tanto que restringimos o espaço da leitura para evitar ficar linhas muito longas. Por conta disso, não utilizamos textos justificados para essas mídias.</p>
<p>Porém, dispositivos móveis, como tablets e smartphones, a coisa muda de figura. Estamos acostumados a ler textos justificados em ambientes que estão a certa distância e pouco espaço horizontal, por uma questão organizacional da própria vista. Com o CSS3, e adoção de certas propriedades pelos principais navegadores para dispositivos móveis, podemos adicionar separação silábica na justificação, deixando o texto mais simples de ler e sem espaçamentos perturbadores entre as palavras.</p>
<p>Para isso, basta adicionar, através de media-queries:</p>
<pre class="prettyprint">/**Apenas em Dispositivos Móveis**/
only screen
and (-webkit-min-device-pixel-ratio: 1)
and (max-device-width: 640px)
and (min-device-width: 320px),
screen and (max-width: 600px){
    .post p{
        text-align: justify;
        -webkit-hyphens: auto; /**Chrome/Android**/
        -moz-hyphens: auto; /**Firefox**/
        -ms-hyphens: auto; /**Edge**/
        hyphens: auto; /**Outros**/
    }
}</pre>
<p><strong>Obs. Algumas versões do Android não são compatíveis com o hyphens. Então verifique se vale a pena para você de acordo com seu público.</strong></p>
<h3>3 &#8211; Tipografias Especiais (WebFonts)</h3>
<p>A maioria das tipografias funcionam de forma razoável, mas você pode querer personalizar para se adequar mais ao seu blog, site ou sistema.</p>
<p>A forma mais barata e simples de fazer isso é através do site <a href="https://fonts.google.com/" target="_blank" rel="noopener">Google WebFonts</a>. Lá você pode encontrar as fonts de forma bem simples e implementar facilmente em seu código.</p>
<p>Basta escolher uma font desejada e clicar no +, no canto superior direito do bloco específico.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1116" src="https://velhobit.com.br/wp-content/uploads/2018/01/google-fonts.jpg" alt="" width="986" height="340" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/google-fonts.jpg 986w, https://velhobit.com.br/wp-content/uploads/2018/01/google-fonts-400x138.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/google-fonts-768x265.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/google-fonts-600x207.jpg 600w" sizes="auto, (max-width: 986px) 100vw, 986px" /></p>
<p>Uma vez escolhida a(s) font(s) desejada(s), basta você clicar na janela que abre na parte inferior e seguir as instruções. Basicamente, você deve adicionar a tag de &lt;script&gt; em seu &lt;header&gt;. Uma vez feito isso, basta chamar a font-family, no CSS, no modo que está no exemplo.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1117" src="https://velhobit.com.br/wp-content/uploads/2018/01/embed-.jpg" alt="" width="612" height="606" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/embed-.jpg 612w, https://velhobit.com.br/wp-content/uploads/2018/01/embed--400x396.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/embed--600x594.jpg 600w, https://velhobit.com.br/wp-content/uploads/2018/01/embed--110x110.jpg 110w" sizes="auto, (max-width: 612px) 100vw, 612px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1118" src="https://velhobit.com.br/wp-content/uploads/2018/01/customize.jpg" alt="" width="613" height="603" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/customize.jpg 613w, https://velhobit.com.br/wp-content/uploads/2018/01/customize-400x393.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/customize-600x590.jpg 600w" sizes="auto, (max-width: 613px) 100vw, 613px" /></p>
<p><strong>Obs. É recomendável que você vá na aba Customize (Personalizar) para que você desmarque as fonts não desejadas. Lembre-se que quanto maior a quantidade de variações, mais pesado vai ser para abrir seu site.</strong></p>
<p>Outra opção, que segue mais ou menos a mesma lógica do Google Webfonts é o Adobe Typekit. O Adobe Typekit está disponível para todos os usuários pagantes da suite Adobe. Ele pode ser acessado simplesmente abrindo janela do CreativeCloud, no Mac ou Windows, e clicando no botão <strong>Gerenciar fontes</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1119" src="https://velhobit.com.br/wp-content/uploads/2018/01/gerenciar-fonts.jpg" alt="" width="442" height="785" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/gerenciar-fonts.jpg 442w, https://velhobit.com.br/wp-content/uploads/2018/01/gerenciar-fonts-225x400.jpg 225w, https://velhobit.com.br/wp-content/uploads/2018/01/gerenciar-fonts-338x600.jpg 338w" sizes="auto, (max-width: 442px) 100vw, 442px" /></p>
<p>Ao fazer isso, o usuário é automaticamente encaminhado para o site do Typekit da Adobe, onde ele pode criar um novo <em><strong>Webkit</strong></em>. Nele você pode criar ou manipular um <em><strong>kit</strong></em> já existente.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1120" src="https://velhobit.com.br/wp-content/uploads/2018/01/adobe-typekit.jpg" alt="" width="956" height="608" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/adobe-typekit.jpg 956w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-typekit-400x254.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-typekit-768x488.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-typekit-600x382.jpg 600w" sizes="auto, (max-width: 956px) 100vw, 956px" /></p>
<p>Caso você clique em <em><strong>+ Create new kit</strong></em>, você será direcionado a um popup com as instruções para você preencher seu site ou IP para trabalhar com a tipografia. Esse cadastro é necessário pois você tem um número limitado de kits que você pode aplicar em sua conta da Adobe.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1121" src="https://velhobit.com.br/wp-content/uploads/2018/01/dominios.jpg" alt="" width="933" height="566" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/dominios.jpg 933w, https://velhobit.com.br/wp-content/uploads/2018/01/dominios-400x243.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/dominios-768x466.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/dominios-600x364.jpg 600w" sizes="auto, (max-width: 933px) 100vw, 933px" /></p>
<p>Uma vez confirmado, o site te encaminhará para a página onde você receberá a tag &lt;link&gt; que você deverá colocar em seu &lt;header&gt;. Uma vez feito isso, você já pode começar a escolher as fonts que vai usar na página. Por fim, você pode visualizar a forma de aplicação e demais opções no menu no canto esquerdo. Ao finalizar, lembre-se de clicar no botão <em><strong>PUBLISH</strong></em>, pois só então ele ficará disponível no seu site.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1122" src="https://velhobit.com.br/wp-content/uploads/2018/01/fonts.jpg" alt="" width="1125" height="880" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/fonts.jpg 1125w, https://velhobit.com.br/wp-content/uploads/2018/01/fonts-400x313.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/fonts-768x601.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/fonts-1024x801.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2018/01/fonts-600x469.jpg 600w" sizes="auto, (max-width: 1125px) 100vw, 1125px" /></p>
<p>&nbsp;</p>
<p>Agora, se você já tem uma font legal ou a encontrou em um site como o DaFont, você pode utilizá-la também em seu site ou blog. Para preparar um pacote com sua fonte personalizada, para ser usada em um site, o site <strong>FontSquirrel</strong> disponibiliza o <a title="Site Para Converter Fonts" href="http://www.fontsquirrel.com/tools/webfont-generator" target="_blank" rel="noopener">WebfontGenerator</a>. Para usá-lo basta enviar a sua fonte em OTF ou TTF, concorde com os termos e gere o kit.</p>
<p><img decoding="async" src="https://velhobit.com.br/wp-content/uploads/2017/01/font-face-tutorial-fonte.jpg" alt="Gerador de Fontes da FontSquirrel" /></p>
<p>Feito o download, está na hora de incorporamos a fonte no seu CSS. Para isso, basta você copiar as fonts que foram geradas no kit para uma pasta font (ou outra de sua preferência), em seu site. Caso esteja usando o WordPress, coloque dentro da pasta dos eu tema.  Em seguida, é só chamar via CSS.</p>
<pre class="prettyprint">@font-face {
    font-family: "minhafonteregular";

    src: url("fonts/minhafonte-webfont.eot");
    src: url("fonts/minhafonte-webfont.eot?#iefix") format("embedded-opentype"),
         url("fonts/minhafonte-webfont.woff") format("woff"),
         url("fonts/minhafonte-webfont.ttf") format("truetype"),
         url("fonts/minhafonte-webfont.svg#minhafonteregular") format("svg");

    font-weight: normal; /**Você vai precisar especificar o weight para cada espessura de font diferente**/
    font-style: normal;
}</pre>
<p>Para usar onde você quiser, basta chamar o font-family, através do nome que você determinou no font-face.</p>
<pre class="prettyprint">.post h1,
.post h2{
     font-family: "minhafonteregular";
}</pre>
<p>&nbsp;</p>
<h2>Outras Dicas</h2>
<ul>
<li>Evite contrastes de cores. Nunca deixe o branco sobre preto ou vice-versa, use tons cinzas ou <em>ton sur ton</em>. Altos contrastes pode deixar a leitura mais cansativa.</li>
<li>Evite cores intensas. Não use cores berrantes na tipografia. Se precisar destacar algo opte sempre por algo mais pastel ou sereno.</li>
<li>Abuse dos espaçamentos. Tome cuidado ao deixar imagens muito próximas do texto, principalmente de anúncios, para não confundir. Lembre-se, a boa tipografia não é definida pelo espaço em que ela ocupa, mas pelo espaço entre ela.</li>
</ul>
<p><span style="color: #1373d4;"><strong>Então, o que achou dessas três dicas? Gostaria de outras dicas como essa? Então compartilhe com quem você acha que se interesse e deixe um comentário.</strong></span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Adobe Portfolio</title>
		<link>https://velhobit.com.br/design/adobe-portfolio.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sun, 07 Jan 2018 23:27:18 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[behance]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[creative cloud]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[fotografias]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[galeria]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[indesign]]></category>
		<category><![CDATA[material]]></category>
		<category><![CDATA[midias sociais]]></category>
		<category><![CDATA[myportfolio]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[responsividade]]></category>
		<category><![CDATA[template]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=1010</guid>

					<description><![CDATA[Uma ferramenta para criar portfólios de forma rápida e simples. Esse é o objetivo do Adobe Portfolio. Simples, responsivo, funcional e tudo o que você precisa para compartilhar seu trabalho.]]></description>
										<content:encoded><![CDATA[<p>Portfólio sempre foi um tema complicado. Mesmo o mais perfeito projeto pode ser mal compreendido ou mal visto se não organizado corretamente. Muitos serviços prometem uma organização de portfólio funcional, mas a maioria não funciona como deveria.</p>
<p>Mesmo os profissionais com conhecimento em programação <em>front-end</em> e <em>web</em>, ou especialistas em <em>web design</em>, possuem dificuldades para organizar projetos tão diferentes entre si em uma mesma página ou conjunto.</p>
<p>Um dos melhores serviços, porém pouco conhecido, para organização de portfólio é o Adobe Portfolio.</p>
<h2>Behance</h2>
<p>Em 2012, a Adobe adquiriu o Behance por 150 milhões de dólares em dinheiro (ou seja, nada de troca de ações ou acordos posteriores). A ideia da Adobe era vincular a mídia social de portfólios à sua suite Creative Cloud. Com isso a Adobe resolveu vincular o serviço Behance ProSite a todos os clientes de sua plataforma. Em 2016, a Adobe oficializou o nome Adobe Portfolio como uma evolução dessa ferramenta.</p>
<p><span style="color: #058580;">Não é incomum a Adobe comprar softwares e serviços. Seus principais aplicativos como Photoshop, Illustrator, Indesign, Premiere, After Effects e até mesmo a tecnologia aplicada ao Creative Cloud são resultados de compras e evoluções de ferramentas com o passar dos anos.</span></p>
<h2>Adobe Portfolio</h2>
<p>O Adobe Portfolio é um serviço vinculado ao Adobe Creative Cloud, seja pelo plano de fotografia ou pelo plano completo, que pode ser acessado diretamente pelo painel do Creative Cloud ou através do site <a href="https://myportfolio.com" target="_blank" rel="noopener">https://myportfolio.com</a>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1013" src="https://velhobit.com.br/wp-content/uploads/2018/01/cc-portfolio.jpg" alt="" width="442" height="383" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/cc-portfolio.jpg 442w, https://velhobit.com.br/wp-content/uploads/2018/01/cc-portfolio-400x347.jpg 400w" sizes="auto, (max-width: 442px) 100vw, 442px" /></p>
<p>O aplicativo web consiste em um conjunto de ferramentas que permite que você faça sua própria página na web, de forma personalizável, a partir de uma série de <em>templates</em> bases. Todos esses <em>templates</em> possuem características básicas, como responsividade, imagens destacadas grandes e opções de criação de páginas.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1014" src="https://velhobit.com.br/wp-content/uploads/2018/01/templates-portfolio.jpg" alt="" width="953" height="578" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/templates-portfolio.jpg 953w, https://velhobit.com.br/wp-content/uploads/2018/01/templates-portfolio-400x243.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/templates-portfolio-768x466.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/templates-portfolio-600x364.jpg 600w" sizes="auto, (max-width: 953px) 100vw, 953px" /></p>
<p>Ao escolher o leiaute, caso já possua uma conta no Behance, simplesmente importe os projetos que você já tem cadastrado lá. Caso não tenha, você pode enviar as mídias e detalhes do projeto diretamente pela ferramenta. Agora, se o seu negócio é fotografia, o Adobe Portfolio ainda possui integração com o Lightroom, podendo ser atualizado diretamente pela aplicação mobile ou pela versão 2017, no Desktop. Inclusive, metadados são suportados.</p>
<p>Uma vez importado seus projetos, você pode adicionar diversas opções, como ícones de mídias sociais, links para páginas externas, adicionar sua identidade visual, modificar cores, editar e adicionar textos, dentre outras opções de design.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1015" src="https://velhobit.com.br/wp-content/uploads/2018/01/adobe-portfolio-01.jpg" alt="" width="873" height="629" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/adobe-portfolio-01.jpg 873w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-portfolio-01-400x288.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-portfolio-01-768x553.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/adobe-portfolio-01-600x432.jpg 600w" sizes="auto, (max-width: 873px) 100vw, 873px" /></p>
<p>Antes de publicar, você ainda deve configurar as opções do site per si, como título, menus, organizações de dados no geral. Ainda deve especificar o favicon e pode criar um subdomínio myportfolio.com ou usar o seu próprio domínio (porém sem suporte a SSL), seguindo as informações passadas de DNS, em seu <em>registar</em>.</p>
<p><span style="color: #058580;"><strong>#Dica:</strong> Você pode encontrar o sitemap para utilizar no Google Console através de <strong>subdominio.myportfolio.com/sitemap.xml</strong>.</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1017" src="https://velhobit.com.br/wp-content/uploads/2018/01/search-optmizer.jpg" alt="" width="767" height="671" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/search-optmizer.jpg 767w, https://velhobit.com.br/wp-content/uploads/2018/01/search-optmizer-400x350.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/search-optmizer-600x525.jpg 600w" sizes="auto, (max-width: 767px) 100vw, 767px" /></p>
<h2>Uma solução rápida e prática</h2>
<p>O Adobe Portfolio é uma solução eficiente que resolve a maioria dos casos. Possui responsividade, integrações simplificadas e muitas opções de personalização. Existem outras ferramentas para portfolios, algumas gratuitas ou vinculadas a templates de CMS, porém nenhuma é realmente tão simplificada. Além disso, a licença Creative Cloud (praticamente obrigatória para quem é designer) já te dá o direito de usar a ferramenta em sua totalidade, sendo, ao menos, uma plataforma a mais para divulgação de trabalho.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BitMail &#8211; Projeto de Envio de Mailmarketing em Lote</title>
		<link>https://velhobit.com.br/editorial/bitmail-projeto-de-envio-de-mailmarketing-em-lote.html</link>
					<comments>https://velhobit.com.br/editorial/bitmail-projeto-de-envio-de-mailmarketing-em-lote.html#comments</comments>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Tue, 02 Jan 2018 23:58:50 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Projetos]]></category>
		<category><![CDATA[aplicativo]]></category>
		<category><![CDATA[bulk]]></category>
		<category><![CDATA[codigo aberto]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[envio]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mailmarketing]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[projeto]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=973</guid>

					<description><![CDATA[BitMail é um aplicativo desktop para envio de e-mails em lotes, criado com a tecnologia Electron / NodeJS. Este projeto é de código aberto e ainda está em beta e diversas funcionalidades não funcionam direito e apresentam falhas com o uso em alguns servidores de e-mail.]]></description>
										<content:encoded><![CDATA[<p style="text-align: center;"><!-- Place this tag where you want the button to render. --><br />
<a class="github-button" href="https://github.com/velhobit/BitMail--NodeJS---Electron-/archive/master.zip" data-icon="octicon-cloud-download" data-size="large" aria-label="Download velhobit/BitMail--NodeJS---Electron- on GitHub">Download</a></p>
<p>BitMail é um aplicativo desktop para envio de e-mails em lotes, criado com a tecnologia Electron / NodeJS. Este projeto é de código aberto e ainda está em beta e diversas funcionalidades não funcionam direito e apresentam falhas com o uso em alguns servidores de e-mail.</p>
<p style="text-align: center;"><!-- Place this tag where you want the button to render. --><br />
<a class="github-button" href="https://github.com/velhobit/BitMail--NodeJS---Electron-" data-size="large" data-show-count="true" aria-label="Star velhobit/BitMail--NodeJS---Electron- on GitHub">Star</a></p>
<h2>Sobre o Projeto</h2>
<p>Há duas semanas comecei a estudar NodeJS (em Dez de 2017) e, por consequência de interesse de criação de aplicativos para desktop, estudar um pouco de Electron. Apesar de já ter experiência com Javascript, estava interessado em entender a manipulação de arquivos locais.</p>
<p>Como quando estudo algo prefiro criar um projeto minimamente útil, resolvi criar uma variação de <a href="https://velhobit.com.br/projetos/portillo-mail.html">um projeto que criei anos atrás para um cliente e que também é de código aberto, o PortilloMail (eu sei, não é um nome muito criativo), criado em PHP e compatível com a maioria dos servidores compartilhados</a>.</p>
<p>Como ainda estou novo em NodeJS, ainda preciso resolver alguns problemas, que vou citar abaixo, mas o aplicativo já é utilizável em diversas circunstâncias.</p>
<ul>
<li><a href="https://velhobit.com.br/bitmail-como-preparar-os-arquivos-csv">COMO PREPARAR O ARQUIVO CSV?</a></li>
<li><a href="https://velhobit.com.br/bitmail-como-criar-meu-proprio-template">COMO CRIAR MEU PRÓPRIO TEMPLATE?</a></li>
<li><a href="https://velhobit.com.br/bitmail-faq-perguntas-frequentes">FAQ (PERGUNTAS FREQUENTES)</a></li>
</ul>
<h2>Como Enviar E-mails?</h2>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-974" src="https://velhobit.com.br/wp-content/uploads/2018/01/tela-inicial-bulk-bit-mail.jpg" alt="" width="916" height="543" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/tela-inicial-bulk-bit-mail.jpg 916w, https://velhobit.com.br/wp-content/uploads/2018/01/tela-inicial-bulk-bit-mail-400x237.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/tela-inicial-bulk-bit-mail-768x455.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/tela-inicial-bulk-bit-mail-600x356.jpg 600w" sizes="auto, (max-width: 916px) 100vw, 916px" /></p>
<p>O BitMail foi feito para ser extremamente simples. Sua tela inicial possui todas as informações básicas necessárias para enviar um e-mail.</p>
<p>A primeira coluna (da esquerda para a direita) refere-se ao remetente da mensagem. Basta colocar o nome de quem está enviando, a senha e o host.</p>
<p>Por enquanto, estamos listando apenas o host Gmail e Outlook, porém, você pode optar por personalizar para configurar o SMTP da sua própria hospedagem. <strong>Com o tempo iremos atualizar com outros padrões de hospedagens mais famosas</strong>.</p>
<p>A coluna do meio é referente a mensagem. Nela você coloca as informações básicas como Assunto e Mensagem (pode usar emojis) e deverá selecionar um arquivo CSV previamente configurado, que consta os e-mails e senhas dos destinatários.</p>
<p>A última coluna é a coluna de envio. Nela você deverá digitar um e-mail para teste. <strong>Apenas após você confirmar o teste, o botão ENVIAR vai ficar funcional.</strong></p>
<p>A barra inferior é a barra de templates. O aplicativo permite que você crie arquivos HTML e os use como templates. Como a ideia é servir de mailmarketing, você mesmo pode criar o seu template. <strong>Leia aqui sobre como incluir seu próprio template</strong>. Se o quadrado preto estiver selecionado, isso quer dizer que você não irá utilizar nenhum template e irá enviar a mensagem do jeito que estiver dentro da caixa mensagem (inclusive com tags HTML).</p>
<p>Para poder garantir que seu e-mail não fique preso em uma caixa de SPAM ou que você seja interrompido pelo limite da sua hospedagem ou servidor de e-mails, o aplicativo é limitado a 200 e-mails por hora. Você pode editar isso, tal como preencher as configurações da sua hospedagem, no PAINEL AVANÇADO.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-975" src="https://velhobit.com.br/wp-content/uploads/2018/01/emails-avancado.jpg" alt="" width="916" height="543" srcset="https://velhobit.com.br/wp-content/uploads/2018/01/emails-avancado.jpg 916w, https://velhobit.com.br/wp-content/uploads/2018/01/emails-avancado-400x237.jpg 400w, https://velhobit.com.br/wp-content/uploads/2018/01/emails-avancado-768x455.jpg 768w, https://velhobit.com.br/wp-content/uploads/2018/01/emails-avancado-600x356.jpg 600w" sizes="auto, (max-width: 916px) 100vw, 916px" /></p>
<p>Antes de usar, é extremamente aconselhável que você leia o FAQ e saiba como preparar o arquivo CSV.</p>
<p>Se você tiver interesse em como criar o seu próprio template, você também pode ler sobre isso aqui.</p>
<h2>Requerimentos</h2>
<p>Após a instalação do NodeJS, você vai precisar de uma série de bibliotecas para poder fazer compilar.</p>
<p>Você pode baixar o NodeJS para Windows diretamente pelo site oficial ou pode usar o seguinte comando para distribuições baseadas em Debian (instalando também seu gerenciador de pacotes):</p>
<pre class="prettyprint">sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm</pre>
<p>Após a instalação do NodeJS, acesse o console e instale o Electron:</p>
<pre class="prettyprint">npm install electron --save-dev --save-exact</pre>
<p>Para o envio dos e-mails, o pacote nodemailer se faz necessário. Para instala-lo, acesse o console e use:</p>
<pre class="prettyprint">npm install nodemailer</pre>
<p>Por fim, para diminuir o código de leitura de arquivo, pois precisava que ele fosse síncrono e mais simples, resolvi usar o n-readlines. Provavelmente, em atualizações futuras não irei usar, mas por enquanto:</p>
<pre class="prettyprint">npm install n-readlines</pre>
<p>Para poder compilar, acesse o console e na pasta onde você salvou o projeto, execute:</p>
<pre class="prettyprint">npx electron .</pre>
<p>Pronto. Você agora já pode utilizar.</p>
<p><strong>Obs. A única biblioteca front-end utilizada, para facilitar o desenvolvimento, foi o jQuery. Além do jQuery e das bibliotecas node utilizadas, o resto foi programado por mim. Então peguem leve nas críticas.</strong></p>
<p style="text-align: center;"><!-- Place this tag where you want the button to render. --><br />
<a class="github-button" href="https://github.com/velhobit" data-size="large" data-show-count="true" aria-label="Follow @velhobit on GitHub">Follow @velhobit</a></p>
<p><!-- INICIO FORMULARIO BOTAO PAGSEGURO --></p>
<form action="https://pagseguro.uol.com.br/checkout/v2/donation.html" method="post"><!-- NÃO EDITE OS COMANDOS DAS LINHAS ABAIXO --> <input name="currency" type="hidden" value="BRL"> <input name="receiverEmail" type="hidden" value="portillo.designer@gmail.com"> <input style="padding: 1em 2em; display: block; margin: 0 auto; background-color: #33c375; text-decoration: none; text-align: center; color: white; border-radius: 10px; border: none; font-size: 1em; text-transform: uppercase;" alt="Pague com PagSeguro - é rápido, grátis e seguro!" name="submit" type="submit" value="Doar Pelo PagSeguro"></form>
]]></content:encoded>
					
					<wfw:commentRss>https://velhobit.com.br/editorial/bitmail-projeto-de-envio-de-mailmarketing-em-lote.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Review do Pixelmator Pro</title>
		<link>https://velhobit.com.br/design/review-do-pixelmator-pro.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sat, 30 Dec 2017 01:53:45 +0000</pubDate>
				<category><![CDATA[Análises]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[análise]]></category>
		<category><![CDATA[aplicação]]></category>
		<category><![CDATA[aplicativo]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[edição]]></category>
		<category><![CDATA[edição de fotos]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[exclusivo]]></category>
		<category><![CDATA[ferramentas]]></category>
		<category><![CDATA[fotografia]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mídias]]></category>
		<category><![CDATA[montagem]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[pixelmator]]></category>
		<category><![CDATA[raw]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=946</guid>

					<description><![CDATA[O Pixelmator Pro é uma versão ainda mais completa do já muito bom editor de imagens Pixelmator, para MacOSX. Mas será que ele é realmente tão bom quanto parece?]]></description>
										<content:encoded><![CDATA[
<p>Todo mundo que trabalha com design, fotografia ou simplesmente é um entusiasta em edição de fotos, certamento já deve ter ouvido falar do Photoshop. Todavia, há outras boas opções no mercado. Uma das mais recentes e mais fortes é o Pixelmator Pro, versão ainda mais completa do já muito bom Pixelmator, conhecido editor de imagens para Macintosh.</p>



<div class="videoWrapper"><iframe loading="lazy" src="https://www.youtube.com/embed/AwQUZRCQi6I" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>



<h2 class="wp-block-heading">Interface Gráfica</h2>



<p>O Pixelmator Pro foi criado pensando em profissionais de fotografia e manipulação digital. Por ser exclusivo para Mac e construído em cima da API Metal, toda sua estrutura gráfica segue os padrões usados na plataforma.</p>



<p>A tela de criação de novo arquivo agora mostra uma série de formatos pré-definidos. O mais interessante é que além de formatos mais conhecidos, como tamanhos de papel e de vídeo, sãos as predefinições de mídias sociais, que apresentam especificações prontas para diversos padrões de imagens para Instagram, Facebook, Twitter e outros.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1264" height="844" src="https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo.jpg" alt="" class="wp-image-947" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo.jpg 1264w, https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo-400x267.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo-768x513.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo-1024x684.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/criar-arquivo-600x401.jpg 600w" sizes="auto, (max-width: 1264px) 100vw, 1264px" /></figure></div>



<p>A tela ainda permite escolher a profundidade de cor (até 16 bits) e tipos de unidade de medida para especificar o novo documento.</p>



<p>A interface do Pixelmator Pro apresenta uma formatação muito comum em aplicativos para correção de fotografia, com a maioria das opções e ferramentas apresentadas no lado direito da tela, deixando praticamente todo resto do espaço para a visualização do projeto. Ele segue uma estrutura bem similar ao Pixelmator para iPad. Ainda há algumas opções a mais no topo, como abas (quando necessário) e uma barra de camadas à esquerda, quando houver mais de uma.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1630" height="1012" src="https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator.jpg" alt="" class="wp-image-949" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator.jpg 1630w, https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator-400x248.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator-768x477.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator-1024x636.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/nova-interface-pixelmator-600x373.jpg 600w" sizes="auto, (max-width: 1630px) 100vw, 1630px" /></figure></div>



<p>Diferente de seu antecessor, essa versão do Pixelmator agora traz uma uma iconografia monocromática em cinzas, tal como sua tipografia, para não distrair o profissional.</p>



<h2 class="wp-block-heading">Pincel e Pintura</h2>



<p>A ferramenta pincel apresenta uma variedade enorme de pontas e compatibilidade com diversas <em>pen-mouses</em> e <em>tablets</em>. Totalmente personalizável, ela simula bem o comportamento de mistura de tintas e também permite importar e exportar pontas.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="446" height="780" src="https://velhobit.com.br/wp-content/uploads/2017/12/ferramenta-pincel.jpg" alt="" class="wp-image-951" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/ferramenta-pincel.jpg 446w, https://velhobit.com.br/wp-content/uploads/2017/12/ferramenta-pincel-229x400.jpg 229w, https://velhobit.com.br/wp-content/uploads/2017/12/ferramenta-pincel-343x600.jpg 343w" sizes="auto, (max-width: 446px) 100vw, 446px" /></figure></div>



<h2 class="wp-block-heading">Ferramenta Organizar</h2>



<p>Aqui a ferramenta mover / selecionar, equivalente, é nomeada de Organizar. Através dela você consegue modificar propriedades do documento ou de suas camadas, como rotacionar, ampliar, mover, alinhar e outros pontos organizacionais.</p>



<p>O diferencial aqui está no fato de que o controle é totalmente adaptado para os movimentos do trackpad.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1441" height="872" src="https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator.jpg" alt="" class="wp-image-953" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator.jpg 1441w, https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator-400x242.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator-768x465.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator-1024x620.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/organizar-pixelmator-600x363.jpg 600w" sizes="auto, (max-width: 1441px) 100vw, 1441px" /></figure></div>



<h2 class="wp-block-heading">Recortando um Objeto da Cena</h2>



<p>Talvez um dos mais impressionantes recursos do Pixelmator Pro seja a ferramenta de Seleção Rápida. Ela funciona como uma mescla de Varinha Mágica com Pincel de Seleção, se comparado com o sistema da Adobe. É mostrado primeiro uma pré-visualização e, ao arrastar, o usuário pode definir a área de recorte de forma realmente rápida e simples e, o melhor, com uma qualidade que nos deixa realmente impressionados.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1632" height="971" src="https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator.jpg" alt="" class="wp-image-956" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator.jpg 1632w, https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator-400x238.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator-768x457.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator-1024x609.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/selecionar-pixelmator-600x357.jpg 600w" sizes="auto, (max-width: 1632px) 100vw, 1632px" /></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1615" height="819" src="https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1.jpg" alt="" class="wp-image-957" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1.jpg 1615w, https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1-400x203.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1-768x389.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1-1024x519.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/recortado-1-600x304.jpg 600w" sizes="auto, (max-width: 1615px) 100vw, 1615px" /></figure></div>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1249" height="809" src="https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3.jpg" alt="" class="wp-image-958" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3.jpg 1249w, https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3-400x259.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3-768x497.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3-1024x663.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/splash-recorte-3-600x389.jpg 600w" sizes="auto, (max-width: 1249px) 100vw, 1249px" /></figure></div>



<p>Uma outra promessa extremamente curiosa da aplicação é que ela promete a nomeação automática de camadas a partir de <em>Machine Learning</em>. Dessa forma, o designer não precisa se preocupar tanto com a nomeação de camadas e será mais simples uma atualização ou manutenção desse documento.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1050" height="548" src="https://velhobit.com.br/wp-content/uploads/2017/12/camadas.jpg" alt="" class="wp-image-967" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/camadas.jpg 1050w, https://velhobit.com.br/wp-content/uploads/2017/12/camadas-400x209.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/camadas-768x401.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/camadas-1024x534.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/camadas-600x313.jpg 600w" sizes="auto, (max-width: 1050px) 100vw, 1050px" /></figure></div>



<h2 class="wp-block-heading">Ajustes de Fotos</h2>



<p>Muito além dos ajustes de fotos tradicionais, que precisam de painéis e seleções individuais, o Pixelmator Pro apresenta uma área que é muito similar a editores de câmera RAW, inclusive o próprio Lightroom, porém com a vantagem adicional de ser possível salvar predefinições para que sejam utilizadas posteriormente. Ainda possui o modo que garante que a imagem original sempre seja preservada, lembrando muito a nova versão do software para fotografia da Adobe.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1296" height="947" src="https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars.jpg" alt="" class="wp-image-959" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars.jpg 1296w, https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars-400x292.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars-768x561.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars-1024x748.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/r2d2-pixelmator-starwars-600x438.jpg 600w" sizes="auto, (max-width: 1296px) 100vw, 1296px" /></figure></div>



<h2 class="wp-block-heading">Efeitos e Pseudo Filtros</h2>



<p>A opção de efeitos, que fizeram tanto sucesso no Pixelmator <em>vanilla</em> está de volta na versão Pro, porém mais poderoso, usando a segunda versão da API Metal, da Apple. Graças ao Metal, o uso otimizado da GPU permite que efeitos sejam aplicados e visualizados em tempo real, mesmo em imagens mais pesadas. Nos testes usamos um MacBook Pro de entrada, Mid 2012, sem GPU dedicada, e tivemos um resultado surpreendentemente bom mesmo com imagens de alta resolução.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1288" height="952" src="https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator.jpg" alt="" class="wp-image-960" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator.jpg 1288w, https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator-400x296.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator-768x568.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator-1024x757.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/efeitos-pixelmator-600x443.jpg 600w" sizes="auto, (max-width: 1288px) 100vw, 1288px" /></figure></div>



<p>O Pixelmator Pro traz efeitos já conhecidos de distorção, desfoque, mosaico, nitidez, dentre outros, e mais alguns que são exclusivos da plataforma, como o divertidíssimo efeito Caleidoscópio. Cada efeito tem suas particularidades e pode ser editados a partir de alças que são visualizados por cima da imagem.</p>



<h2 class="wp-block-heading">Vetores</h2>



<p>Em sua versão comum, é apresentado um conjunto de ferramentas vetorais com estilos e predefinições intitulado de <strong>Vectomator</strong>. Além de disponibilizar uma série de ícones e vetores prontos (a maioria precisa ser baixado), você ainda pode desenhar vetores simples de uma forma muito similar ao Illustrator. Infelizmente, sua exportação fica restrita a imagens matriciais, não sendo funcional para criação, por exemplo, de identidades visuais.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="641" height="537" src="https://velhobit.com.br/wp-content/uploads/2017/12/pixelmator-vetor.jpg" alt="" class="wp-image-961" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/pixelmator-vetor.jpg 641w, https://velhobit.com.br/wp-content/uploads/2017/12/pixelmator-vetor-400x335.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/pixelmator-vetor-600x503.jpg 600w" sizes="auto, (max-width: 641px) 100vw, 641px" /></figure></div>



<h2 class="wp-block-heading">Tipografia</h2>



<p>A tipografia talvez seja o ponto mais fraco da ferramenta. Apesar do excelente acabamento tipográfico do MacOSX, as funcionalidades entregadas pelo Pixelmator Pro são muito limitadas. Apesar de haver opções interessantes, o aplicativo não entrega tudo o que poderia, obrigando o usuário a ter que converter o texto para forma ou pixel para que possa usar opções comuns, como sombra projetada.</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="517" height="631" src="https://velhobit.com.br/wp-content/uploads/2017/12/textos.jpg" alt="" class="wp-image-962" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/textos.jpg 517w, https://velhobit.com.br/wp-content/uploads/2017/12/textos-328x400.jpg 328w, https://velhobit.com.br/wp-content/uploads/2017/12/textos-492x600.jpg 492w" sizes="auto, (max-width: 517px) 100vw, 517px" /></figure></div>



<h2 class="wp-block-heading">Uma Verdadeira Opção ao Photoshop</h2>



<p>Ninguém duvida que o Photoshop é uma aplicação extremamente robusta e completa. Todavia, está anos parado no tempo no quesito usabilidade e interface gráfica. Muitos filtros do Photoshop ainda não usam bem a GPU e não possui resposta em tempo real na maioria de seus filtros e efeitos. Já o Pixelmator, talvez por ser uma empresa jovem, ou por ser exclusivo para MacOSX&nbsp; pode, assim, usar em totalidade API da Maçã. O resultado é mais poder de processamento gráfico para gerar resultados impressionantes.</p>



<p>Sendo uma opção muito boa, o Pixelmator Pro é ideal para retoques de fotos, composições e criação de anúncios para mídias sociais, web, ícones e diversos <em>assets</em> para projetos gráficos. Porém pode ser extremamente bem usado também para material impresso.</p>



<p>Com o preço único de 59,90 dólares (aproximadamente 200 reais), o Pixelmator Pro, se seguir o método de sua versão anterior, vai receber ainda diversas atualizações e se tornará talvez a melhor opção para edição de fotos para usuários MacOSX.</p>



<p>E você? Já conhecia o Pixelmator? Já tem opinião sobre esse aplicativo? Deixe seu comentário.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Efeito Neon com CSS 3, SVG e um tiquinho de Javascript (Texto e Imagem)</title>
		<link>https://velhobit.com.br/tutoriais/efeito-neon-com-css-3-svg-e-um-tiquinho-de-javascript-texto-e-imagem.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sun, 24 Dec 2017 17:03:07 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[ano novo]]></category>
		<category><![CDATA[cores]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[efeitos]]></category>
		<category><![CDATA[estilo]]></category>
		<category><![CDATA[fontes]]></category>
		<category><![CDATA[iluminação]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[luminosidade]]></category>
		<category><![CDATA[luz]]></category>
		<category><![CDATA[neon]]></category>
		<category><![CDATA[sabre]]></category>
		<category><![CDATA[starwars]]></category>
		<category><![CDATA[tipografia]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[webdesign]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=915</guid>

					<description><![CDATA[Já pensou como seria legal fazer um efeito neon com CSS e um pouquinho de Javascript puro? E que tal colocar sua logo, uma mensagem de ano novo ou até mesmo um Sabre de Luz, de StarWars?]]></description>
										<content:encoded><![CDATA[<p>O final do ano é o momento perfeito para aprender CSS com efeitos divertidos para o Ano Novo. Graças aos navegadores modernos, podemos fazer animações e efeitos interessantes e divertidos de forma leve e funcional. Que tal fazer um efeito neon divertido e interessante sem nenhum framework?</p>
<p><b><span style="color:red;">ATENÇÃO:</span> Devido a quantidade de código e efeitos nesta página, pode apresentar lentidão se você for testar os exemplos abaixo em dispositivos móveis mais antigos (e até alguns mais recentes). Se você fizer o uso comedido, você não encontrará esse tipo de problemas.</b></p>
<h2>Adicionando a Logo SVG</h2>
<p>Para poder funcionar de forma leve, precisamos que a imagem que vamos adicionar seja em SVG. Dessa forma podemos manipular seus parâmetros de forma simples e adicionar efeitos.</p>
<p>Vários programas permitem exportar os objetos em SVG. Inkscape (que é de código aberto e gratuito), Illustrator ou CorelDRAW, todos eles possuem uma área de exportação específica.</p>
<p>No Illustrator, você pode usar a opção <em><strong>Exportar para Telas</strong></em>. Importante salientar que, para ficar com um melhor acabamento, coloque apenas contornos, sem preenchimento no objeto.</p>
<p><figure id="attachment_916" aria-describedby="caption-attachment-916" style="width: 842px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-916" src="https://velhobit.com.br/wp-content/uploads/2017/12/exportar-para-telas.jpg" alt="Opção de Exportar para Telas, no Adobe Illustrator CC" width="842" height="552" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/exportar-para-telas.jpg 842w, https://velhobit.com.br/wp-content/uploads/2017/12/exportar-para-telas-400x262.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/exportar-para-telas-768x503.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/exportar-para-telas-600x393.jpg 600w" sizes="auto, (max-width: 842px) 100vw, 842px" /><figcaption id="caption-attachment-916" class="wp-caption-text">Opção de Exportar para Telas, no Adobe Illustrator CC</figcaption></figure></p>
<p>O resultado será um arquivo de extensão SVG. O interessante é que você pode abrir esse arquivo em qualquer editor de texto e ver os detalhes. Você deverá guardar esse arquivo para uso posterior no HTML.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-917" src="https://velhobit.com.br/wp-content/uploads/2017/12/svg-img.jpg" alt="" width="745" height="670" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/svg-img.jpg 745w, https://velhobit.com.br/wp-content/uploads/2017/12/svg-img-400x360.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/svg-img-600x540.jpg 600w" sizes="auto, (max-width: 745px) 100vw, 745px" /></p>
<h2>Montando o HTML</h2>
<p>Uma vez criado o SVG, precisamos montar o HTML. Para isso, basta criar a área e organizar as classes e ids de forma apropriada, ficando:</p>
<pre class="prettyprint">&lt;div class="area_neon"&gt;
	&lt;center&gt;
		&lt;h1 id="texto_neon" class="neon"&gt;Bit Color | Velho Bit&lt;/h1&gt;
	&lt;/center&gt;
&lt;/div&gt;</pre>
<p>Apenas isso.</p>
<p>Em seguida, vamos colocar o SVG acima do <em><strong>h1</strong></em>. Para isso, basta copiar o código gerado acima do SVG. Em seguida, adicione a classe específica que vamos usar no CSS e mude (caso necessário) para uma <strong><em>id</em></strong> mais fácil de compreender.</p>
<p>Ficando algo similar a:</p>
<pre class="prettyprint">&lt;div class="area_neon"&gt;
	&lt;center&gt;
		&lt;svg class="neon_img" id="img_neon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 232.06 238.87"&gt;&lt;path d="M189.39,53.25c9.32,0,16.87,7.85,16.87,17.54s-7.55,17.54-16.87,17.54-16.86-7.85-16.86-17.54,7.55-17.54,16.86-17.54m7.9,20.35a4.71,4.71,0,1,0-4.53-4.71,4.62,4.62,0,0,0,4.53,4.71m-7.9-26.35c-12.6,0-22.86,10.56-22.86,23.54s10.26,23.54,22.86,23.54,22.87-10.56,22.87-23.54S202,47.25,189.39,47.25Z"/&gt;&lt;path d="M127,11.43c1.35,0,2.77,0,4.26,0,35.29.62,54.9,18.2,66,28.77,13.49,12.84,20.56,33,20.59,48.14,0,10.68-42.82,16-64.66,17.32-3.78.23-6.93.35-9.12.35-.59,0-1.1,0-1.55,0h-.41c-2.07,0-8.64.48-10.44,6.46-.32,1-1.23,6.3,2.46,6.3,1.3,0,3.17-.65,5.85-2.37a4.89,4.89,0,0,1,2.68-.89c4.62,0,6.69,8.54,5.11,9.14a2,2,0,0,1-.66.14c-1.25,0-1.54-1.8-1.56-4.17,0-1.4-1.78-2.23-3.59-2.23s-3.53.77-3.87,2.52c7.15,4.17,4.93,14.15,3.6,16.46-.3.53-.65.74-1,.74-1.14,0-2.18-2.4-1.19-3.17,1.29-1,3.47-3.36,2.28-6.13-1.09-2.52-2.4-3.86-4-3.86s-3.46,1.36-5.63,4.24c-1.56,2.05-2.59,2.81-3.86,2.81-2.26,0-5.25-2.45-13.19-4.32a20.2,20.2,0,0,0-4.66-.49,39.34,39.34,0,0,0-10.77,1.7c-19.4,5.66-43.45,25.47-33,59.46,5,16.33,16.27,22.2,27.42,22.2s22.05-5.79,26.72-12.88a15.84,15.84,0,0,0,1.65-3.22,31.73,31.73,0,0,0,1-3.51c1.78-7.59-.07-13.52-2.9-17.44-2.35-3.28-5.38-5.16-7.54-5.44,3.93,4.38-1.27,18.71-9.88,18.71a8.68,8.68,0,0,1-1-.06c-14-1.8-17-17.39-8.69-26.5a19.81,19.81,0,0,1,15-6.62,26.8,26.8,0,0,1,9.65,1.91,30.65,30.65,0,0,1,4.2,2c.41.24.8.49,1.19.76,11.21,7.84,13.5,30.64,3.89,47.88-6.57,11.8-18.72,21-37.41,21a63.65,63.65,0,0,1-7.51-.46c-1.1-.14-2.22-.3-3.36-.5-.51-.08-1-.16-1.55-.26A74.23,74.23,0,0,1,31.3,196.3C18.35,178.52,12.6,155,17.19,130.83,25.76,85.85,50.4,61,72.53,46.29a201.71,201.71,0,0,1,28.21-15.2c3.29-1.51-2.65-9.48-1.51-12.25,1.41-3.43,3.85-7.41,27.8-7.41m60.5,81.15c11.57,0,20.95-9.75,20.95-21.79S199.1,49,187.53,49s-20.95,9.75-20.95,21.79S176,92.58,187.53,92.58M127,5.43c-24.18,0-30.38,3.91-33.35,11.12-1.39,3.39-.07,6.87,1.1,10l.24.63A195.09,195.09,0,0,0,69.21,41.29C38,62,18.54,91.71,11.3,129.71c-4.73,24.85.79,50.41,15.15,70.13a80.46,80.46,0,0,0,50.06,32l1.27.22.4.07c1.32.22,2.51.4,3.64.53a68.58,68.58,0,0,0,8.23.51c18.86,0,34-8.54,42.66-24.06,11-19.83,8.39-45.86-5.7-55.71-.58-.41-1.12-.75-1.64-1.05a38.22,38.22,0,0,0-5-2.4,32.54,32.54,0,0,0-11.84-2.32,25.73,25.73,0,0,0-19.44,8.57,23.09,23.09,0,0,0-4.88,23.24c2.7,7.36,9,12.2,17.22,13.26a13.29,13.29,0,0,0,1.78.11c6,0,11.55-4,14.77-10.52a17.89,17.89,0,0,1-.29,7.33,24.29,24.29,0,0,1-.84,2.83,9.16,9.16,0,0,1-1,2c-3.25,4.94-12,10.18-21.71,10.18-7.38,0-17.13-3.12-21.69-18-3.56-11.62-2.91-22.08,1.94-31.08,5.2-9.64,15.3-17.44,27-20.86a33.17,33.17,0,0,1,9.09-1.46,14.3,14.3,0,0,1,3.28.33,47.43,47.43,0,0,1,8.41,2.82,15.44,15.44,0,0,0,6.16,1.66,8.84,8.84,0,0,0,4.83-1.44,8.36,8.36,0,0,0,.44,2.05,7.74,7.74,0,0,0,7.12,5.5,7.18,7.18,0,0,0,6.19-3.74,20.89,20.89,0,0,0,2.22-9.85,7.92,7.92,0,0,0,.78-.26c2.66-1,5.16-4,4.18-9.35a15.67,15.67,0,0,0-4.95-9c1.37,0,2.86-.13,4.43-.23,5.4-.33,24.35-1.68,41.4-5.27,13.47-2.84,28.92-7.45,28.9-18,0-15.51-7-37.75-22.46-52.48-10.14-9.65-31.24-29.74-70-30.42-1.5,0-3,0-4.36,0Zm60.5,81.15c-8.24,0-14.95-7.08-14.95-15.79S179.29,55,187.53,55s14.95,7.08,14.95,15.79-6.71,15.79-14.95,15.79Z"/&gt;&lt;/svg&gt;
		&lt;h1 id="texto_neon" class="neon"&gt;Bit Color | Velho Bit&lt;/h1&gt;
	&lt;/center&gt;
&lt;/div&gt;</pre>
<p>Porém, para ficar mais legal, devemos usar uma tipografia mais apropriada. No <a href="https://fonts.google.com/" target="_blank" rel="noopener">Google Fonts</a> podemos encontrar tipografias interessantes, com cantos arredondados, que nos darão resultados mais interessantes.</p>
<p>Uma vez escolhida a fonte, clique no <em>Select this Font</em> (no Google Fonts) e ele vai dar um código similar a este abaixo, que você deverá colocar dentro do <strong><em>header</em></strong> do seu HTML.</p>
<pre class="prettyprint">&lt;link href="https://fonts.googleapis.com/css?family=Nunito:400" rel="stylesheet"&gt;</pre>
<h2>Trabalhando com o CSS</h2>
<p>Neste momento precisamos pensar em instâncias. O Neon pode estar ligado ou desligado. Por isso, precisamos pensar nos objetos das duas formas.</p>
<p>Leia os comentários no código para entender o seu funcionamento.<!--?prettify linenums=true?--></p>
<pre class="prettyprint">&lt;style&gt;
		/*
		Configuração do container
		onde ficará os Neons
		*/
		.area_neon{
			background-color: #0F0F0F;
			font-family: 'Nunito', sans-serif;
			
			left: 0;
			right: 0;
			bottom: 0;
			top: 0;
			padding: 20px;
			padding-top: 40px;
			position: absolute;
		}
		
		/*
		Base do Neon apagado (TEXTO).
		Iremos simular um efeito as lâmpadas
		de neon apagadas.
		*/
		.area_neon h1.neon{
			font-weight: 400;
			font-size: 7em;
			
			/**
			O filtro BLUR deve ser mantido em 0, porque 
			iremos usa-lo quando ligado.
			Para a animação de transição funcionar
			corretamente, ele precisa ser declarado
			mesmo desligado.
			**/
			filter: blur(0);
			
			/**
			Para simular a lâmpada, colocaremos um
			contorno bem suave, para delimitar o
			objeto, porém com o fundo
			quase transparente
			**/
			-webkit-text-stroke: 1px rgba(255,255,255,0.1);
			color: rgba(255,255,255,0.1);
			
			/**
			O TextShadow e o BackgroundClip
			irá servir para colocar um efeito de 
			profundidade no objeto
			**/
			text-shadow: -5px 5px 5px black;
  			-webkit-background-clip: text;
			
			/**
			O Transition é responsável por
			adicionar uma sensação de animação
			entre os eventos.
			**/
			transition: all ease 1s;
		}
		
		/**Texto com o Neon Ligado**/
		.area_neon h1.neon.on{
			/**
			Será fundametal o desfoque para dar
			a sensação de luminosidade.
			**/
			filter: blur(1px);
			
			/**
			Um objeto com luz precisa possuir seu 
			centro branco, caso contrário, vai dar
			a sensação de que está apenas com um
			sombreamento e não com luz.
			
			Por isso, devemos manter a cor branca,
			que vai representar o centro luminoso,
			e a borda da cor que desejamos usar.
			
			O TextShadow será a luminosidade do
			ambiente vinda da luz do Neon.
			
			O contorno e a sombra deverão ser
			da cor que você escolher para o neon,
			mas a cor do texto deverá ser sempre
			branca.
			**/
			color: white;
			-webkit-text-stroke: 1px #00FFB3;
			text-shadow: 0 0 5px #CCFFF7, 0 0 200px #00FFDB;
			-webkit-background-clip: none;
		}
		
		/**
		O neon para a imagem SVG terá que ser
		um pouco diferente, mas podemos
		manter a mesma lógica.
		**/
		.area_neon svg.neon_img{
			width: 50%;
			margin: 0 auto;
			
			/**
			Ao invés de usarmos color, usaremos 
			o parâmetro FILL para poder determinar a cor
			do objeto e o STROKE para a borda.
			
			Porém usaremos as mesmas lógicas
			usadas no Texto
			**/
			fill: rgba(255,255,255,0.1);
			stroke: rgba(255,255,255,0.1);
			
			filter: blur(0) drop-shadow(-5px 5px 5px black);
 			/**
			Usaremos o drop-shadow aplicado no filter,
			para poder ter o efeito similar ao do texto.
			**/
			
			transition: all ease 1s;
		}
		/**SVG com o neon Ligado**/
		.area_neon svg.neon_img.on{
			/**
			Aqui aplicamos a mesma lógica usada
			no texto, porém adaptada para o tipo de objeto.
			**/
			fill: white;
			stroke: #F0FF00;
			filter: blur(1px) drop-shadow(0 0 10px #F0FF00)  drop-shadow(0 0 200px #F0FF00) ;
		}
	&lt;/style&gt;</pre>
<h2>Ligando o Neon</h2>
<p>Vamos usar o Javascript puro para ligarmos a luz. Tudo o que precisamos é adicionar <strong>on</strong> ao parâmetro classe das tags HTML correspondentes.</p>
<p>Para isso vamos criar a função <em><strong>turnOn()</strong></em>:</p>
<pre class="prettyprint">&lt;script&gt;
function turnOn(){
	var texto = document.getElementById("texto_neon");
	texto.className = texto.className.concat(" on");

	var imagem = document.getElementById("img_neon");
	imagem.setAttribute("class", imagem.getAttribute("class").concat(" on"));
	//Repare que temos que usar setAttribute no SVG. Isso porque o SVG não possui o mesmo comportamento de uma tag HTML comum
}
&lt;/script&gt;</pre>
<p>Agora vamos testar?<br />
<iframe src="/css_neon/tutorial.html" border="0" style="border:0;min-height:600px;width:100%;height:auto;"></iframe><br />
<center><a href="/css_neon/tutorial.html" target="_blank">Clique aqui para ver em uma nova aba</a></center></p>
<p>Você pode pegar o Código Completo deste tutorial diretamente no GitHub.</p>
<p style="text-align: center;"><!-- Place this tag where you want the button to render. --> <a class="github-button" href="https://github.com/portillodesign/Neon-CSS-Examples/archive/master.zip" data-size="large" aria-label="Download portillodesign/Neon-CSS-Examples on GitHub">Download</a></p>
<p>Todavia, também podemos ter outros efeitos interessantes seguindo essa mesma lógica.</p>
<h2>Feliz ano novo com Contagem Regressiva</h2>
<p><iframe src="/css_neon/feliz_ano_novo.html" border="0" style="border:0;min-height:600px;width:100%;height:auto;"></iframe><br />
<center><a href="/css_neon/feliz_ano_novo.html" target="_blank">Clique aqui para ver em uma nova aba</a></center></p>
<h2>Sabre Jedi (liga/desliga) com Som</h2>
<p><iframe src="/css_neon/sabre_jedi.html" border="0" style="border:0;min-height:800px;width:100%;height:auto;"></iframe><br />
<center><a href="/css_neon/sabre_jedi.html" target="_blank">Clique aqui para ver em uma nova aba</a></center></p>
<h3>Lembrando que todos os códigos demonstrados aqui podem ser baixados pelo GitHub.</h3>
<p style="text-align: center;"><!-- Place this tag where you want the button to render. --><br />
<a class="github-button" href="https://github.com/portillodesign/Neon-CSS-Examples" data-size="large" data-show-count="true" aria-label="Star portillodesign/Neon-CSS-Examples on GitHub">Star</a></p>
<p>Deixe seu comentário e compartilhe este post. Curta a página do <a href="https://www.facebook.com/velhobit/" target="_blank">VelhoBit no Facebook</a>! e entre para o grupo <a href="https://www.facebook.com/groups/designdesenvolvimento/" target="_blank">Design e Desenvolvimento</a>. </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Emojis 🤔. O Que São Realmente? Qualquer um Pode Fazer?</title>
		<link>https://velhobit.com.br/editorial/unicode-emojis-o-que-sao.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Wed, 13 Dec 2017 19:04:08 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[comunicação]]></category>
		<category><![CDATA[consórcio]]></category>
		<category><![CDATA[conversa]]></category>
		<category><![CDATA[cores]]></category>
		<category><![CDATA[desenhos]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[emoji]]></category>
		<category><![CDATA[ícone]]></category>
		<category><![CDATA[ilustração]]></category>
		<category><![CDATA[live messenger]]></category>
		<category><![CDATA[messenger]]></category>
		<category><![CDATA[modernidade]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[símbolo]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[tipografia]]></category>
		<category><![CDATA[unicode]]></category>
		<category><![CDATA[vetor]]></category>
		<category><![CDATA[w3c]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=895</guid>

					<description><![CDATA[Como vivem? O que comem? Como se alimentam? Tudo o que você sempre quis saber sobre emojis, mas tinha medo de perguntar. Porém, com uma abordagem técnica e entendendo como funcionam.]]></description>
										<content:encoded><![CDATA[<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Emojis estão alta na comunicação social e hoje são peças-chave em diversas mídias, sendo aplicadas mais e mais como uma espécie de linguagem universal. Mas afinal, de onde vieram os emojis e qual a diferença deles em relação aos antigos emoticons?</p>
<p>Para entender mais sobre os emojis e sua história, primeiro precisamos entender sobre <em>charsets </em>e como o sistema operacional compreende e padroniza as informações referentes ao texto.</p>
<h2>Do Bit à Organização</h2>
<p>No princípio era o bit, o bom e <a href="https://velhobit.com.br" target="_blank" rel="noopener">Velho Bit</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />. O caractere era traduzido diretamente de um conjunto de 1 byte e impresso no dispositivo de saída de acordo com as variações desse byte. Óbvio que falar que a letra <em><strong>A</strong></em> era equivalente a um conjunto de <em><strong>1</strong></em> e <em><strong>0</strong></em>, logo se tornou ultrapassado e foi necessário codificar isso de forma mais inteligente. Com a popularização cada vez maior dos <em>mainframes</em>, os conjuntos de caracteres precisaram seguir padrões mais organizados e específicos para universalizar a escrita computacional. Foi nesse momento que foi criado o padrão hexadecimal para especificação de caracteres.</p>
<p>A programação hexadecimal, no início da era da computação, era muito usada para simplificar a compreensão de códigos. Posteriormente, com linguagens de programação, como o COBOL, a forma de escrita foi simplificada justamente a partir dos caracteres hexadecimais.</p>
<div class="obs">Obs. Para quem não está acostumado com o termo hexadecimal, se trata de um sistema numérico com base em 16 digitos. Diferente do sistema decimal mais comum, que vai de 0 a 9, o sistema hexadecimal passa pelos digitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Através desse sistema, é possível criar uma variação maior e mais adequada de numerais, o que auxilia na definição de elementos, como neste caso, caracteres.</div>
<p>Porém, outros sistemas também foram usados para padronização de caracteres, como o próprio sistema decimal e o sistema octal. A partir dessa interpretação, foi criado nos anos 60 o primeiro documento oficial de padronização desses elementos, através de sistemas básicos, o ASCII (<em><strong>A</strong>merican <strong>S</strong>tandard <strong>C</strong>ode for <strong>I</strong>nformation <strong>I</strong>nterchange</em>).</p>
<p><figure id="attachment_898" aria-describedby="caption-attachment-898" style="width: 803px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-898" src="https://velhobit.com.br/wp-content/uploads/2017/12/asciitable.jpg" alt="Table ASCII" width="803" height="542" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/asciitable.jpg 803w, https://velhobit.com.br/wp-content/uploads/2017/12/asciitable-400x270.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/asciitable-768x518.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/asciitable-600x405.jpg 600w" sizes="auto, (max-width: 803px) 100vw, 803px" /><figcaption id="caption-attachment-898" class="wp-caption-text">Table ASCII</figcaption></figure></p>
<p>O ASCII consiste em um padronização e é conhecido como o sistema básico de codificação de caracteres. Como a computação moderna nasceu nos EUA, é de se esperar que o padrão ASCII cobriria muitos caracteres usados em seu idioma. Por isso, era necessário que essa padronização fosse regulamentada a partir de uma entidade mais internacionalizada. Por se tratar de glifos, algo que já era padronizado em máquinas de escrever e prensas tipográficas, nada mais natural que a responsável por essa padronização fosse a ISO (Organização Internacional de Normalização), que é composta por vários países. De pleno acordo, foi criado o padrão ISO 646, formalizado como o padrão US-ASCII, por usar uma base de caracteres ocidentais norte-americanos.</p>
<p>A partir daí o ISO formalizou diversas outras tabelas de codificação de caracteres, gerando uma enorme variação adaptada para cada região ou base de caracteres, havendo variações latinas, saxônicas e orientais. Como muitos países possuem idiossincrasias em seus caracteres, a quantidade desses padrões foram crescendo e gerando uma dificuldade de controle, resultando quase em uma despadronização.<em> Se você é programador, provavelmente já deve ter tido muitos problemas com a Windows 1252, que é uma vertente da normalização ISO 8859-1 e já deve ter tido que converter alguns arquivos por problemas de caracteres, seja no banco de dados ou na interpretação da leitura de arquivos.</em></p>
<h2>O Consórcio Unicode</h2>
<p>Visto que o ISO não era padronizado exatamente por uma organização da área de tecnologia, algumas questões acerca de caracteres ficaram insolúveis ou eram demasiadas burocráticas para fazer determinadas atualizações. Por isso, diversas empresas de tecnologia se juntaram para organizar um consórcio mais específico e organizado para uma diversidade maior de caracteres, em padrões adequados para a computação.</p>
<p>O Unicode (<em>Universal Code</em>) foi criado para organizar caracteres do ponto de vista mais computacional e adequado, baseado em experiencias anteriores da Xerox (sim, saíram muito mais coisas de lá do que apenas a interface gráfica). Fazem parte do Unicode empresas como a Adobe Systems, Apple, Facebook, Google, Huawei, IBM, Microsoft, Oracle Corporation, Yahoo! e várias outras que entram e aparecem, ou simplesmente seguem essas regras. Essa universalização foi fundamental para a criação de padrões que são altamente usados por praticamente todas as empresas no mercado de tecnologia. Sem dúvida, se você é programador ou designer, já deve ter usado constante, ou buscado por ele, o padrão UTF-8.</p>
<p>UTF-8 significa <em>Unicode Transformation Format</em> de 8 bits. É um padrão que, além de dar muito espaço para criação de caracteres, também é totalmente compatível com o padrão ASCII, tornando tudo mais simples e descomplicado para codificação adequada de caracteres. Existem outras codificações UTF, mas, por regra, o último numeral representa a quantidade de bits da codificação e, claro, quanto mais bits, mais espaço para adição de novos caracteres.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-899" src="https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_.png" alt="Unicode Logo" width="2000" height="2000" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_.png 2000w, https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_-400x400.png 400w, https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_-768x768.png 768w, https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_-1024x1024.png 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/2000px-Unicode_logo.svg_-600x600.png 600w" sizes="auto, (max-width: 2000px) 100vw, 2000px" /></p>
<h2>A Comunicação Social</h2>
<p>Se por um lado haviam engenheiros desenvolvendo melhores formas de entrada e saída de caracteres, por outro a internet trouxe uma nova forma de se comunicar. Graças a velocidade com que as conexões foram ficando mais ágeis, diminuindo a distância entre os países, sistemas de <em>chat</em> foram ficando cada vez mais populares. Do antigo BBS ao mIRC, mais pessoas digitavam e buscavam formas mais simples e rápidas de demonstrar intenções e rostos a partir de padrões visuais. Foi daí que surgiram os famosos emoticons.</p>
<p>Emoticons (emotion icon) foi o termo dado a pequenas figurinhas que podia-se fazer a partir de representação com caracteres. Quem nunca usou o famoso <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong>, para representar felicidade, ou <strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong>, para mandar uma piscadela charmosa? Isso acontece porque nosso cérebro é perfeito para reconhecer padrões e podemos criar assimilações de diversas expressões ou situações.</p>
<p>Logo, o emoticon se tornou algo popular, por se tratar de uma forma moderna e mais expressiva de comunicação. Se tornaram cada vez mais detalhadas e com mais caracteres e, muitas vezes, com caracteres pouco conhecidos, como <strong>( ͡° ͜ʖ ͡°)</strong>, <strong>¯\_(ツ)_/¯</strong>, <strong>(╬ ಠ益ಠ)</strong> e até alguns que exigiam mais de uma linha e espaços de caracteres iguais.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-901" src="https://velhobit.com.br/wp-content/uploads/2017/12/borboleta.png" alt="" width="638" height="330" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/borboleta.png 638w, https://velhobit.com.br/wp-content/uploads/2017/12/borboleta-400x207.png 400w, https://velhobit.com.br/wp-content/uploads/2017/12/borboleta-600x310.png 600w" sizes="auto, (max-width: 638px) 100vw, 638px" /></p>
<p>Visto essa popularização, programas como <em>MSN Messenger</em> (mais tarde renomeado para <em>Live Messenger</em>), <em>ICQ</em>, Chat da UOL, dentre outros, começaram a introduzir ícones mais complexos que representassem essas expressões. Emoticons ganharam um status mais visual e reconhecível na comunicação e obtiveram o apelido de <em><strong>smiles</strong></em>, termo importado a partir do famoso símbolo Smiley, criado pelo artista gráfico Harvey Ball, e seguindo a mesma lógica estética.</p>
<p>Agora mais complexos, em PNG, coloridos e até animados, os emoticons se tornaram elementos obrigatórios na comunicação em programas de <em>chats</em> modernos.</p>
<p><figure id="attachment_902" aria-describedby="caption-attachment-902" style="width: 950px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-902" src="https://velhobit.com.br/wp-content/uploads/2017/12/msn-smileys.jpg" alt="Emoticons do Live Messenger - smileys" width="950" height="534" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/msn-smileys.jpg 950w, https://velhobit.com.br/wp-content/uploads/2017/12/msn-smileys-400x225.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/msn-smileys-768x432.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/msn-smileys-600x337.jpg 600w" sizes="auto, (max-width: 950px) 100vw, 950px" /><figcaption id="caption-attachment-902" class="wp-caption-text">Emoticons do Live Messenger &#8211; smileys</figcaption></figure></p>
<h2>E, Finalmente, os Emojis</h2>
<p>Uma vez que os emoticons fizeram muito sucesso em chats e se tornaram uma forma padrão de comunicação na internet, as empresas que correspondem ao consórcio Unicode resolveram organizar para que os emoticons fizessem parte também de suas codificações de caracteres, a fim de que as pessoas pudessem receber emoticons padronizados e que as expressões fossem mais próximas possíveis uma das outras, para facilitar o entendimento. Daí surgiram os <strong>emojis</strong>.</p>
<p>Emoji é um termo japonês para pictograma, que ao pé da letra seria uma junção de imagem e letra e fora criado em 1999 por Shigetaka Kurita para uma plataforma móvel de internet. Em 2009, vendo a necessidade de melhorar a integração com seus dispositivos móveis, a Apple e a Google fizeram uma requisição ao consórcio para inclusão dos emojis dentro dos sistemas Unicode. A versão 6.0 do padrão Unicode, em 2010 trouxe ao mundo a integração com os emojis.</p>
<p>Com a popularidade do emoji pela adoção das frabricantes, a versão 7.0 do Unicode trouxe um pacote com 250 glifos inspirados em tipografias como Webdings e Wingdings. Até a finalização deste post, o <a href="https://unicode.org/emoji/charts-11.0/full-emoji-list.html">Unicode Emoji estava em sua versão 11.0 (<em>beta</em>)</a> com uma lista &#8220;<em><strong>xigante</strong></em>&#8221; de emojis vinculados ao UTF.</p>
<p>Dessa forma, é importante deixar claro que <strong>a inclusão de um novo emoji depende do requerimento de uma fabricante a aprovação de todo consórcio</strong>. Dessa forma, é criada uma padronização na visualização desses emojis. Todavia, ainda fica pendente a implementação desse emoji no sistema operacional usado pela fabricante e na atualização desse sistema. Por isso acontece de às vezes emojis enviados pelo iOS não serem visíveis em um Android, ou vice-versa, principalmente pelo problema de fragmentação deste último.</p>
<p style="text-align: center; font-size: 2em;"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61a.png" alt="😚" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f92f.png" alt="🤯" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f92c.png" alt="🤬" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a9.png" alt="💩" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f994.png" alt="🦔" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f989.png" alt="🦉" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f469-200d-1f4bb.png" alt="👩‍💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9db-200d-2640-fe0f.png" alt="🧛‍♀️" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9dc-200d-2640-fe0f.png" alt="🧜‍♀️" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9dd-200d-2640-fe0f.png" alt="🧝‍♀️" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f64f.png" alt="🙏" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h2>A Aparência dos Emojis</h2>
<p>Apesar do acordo dos emojis especificar por escrito quais emojis podem ser aplicados, cabem as fabricantes disponibilizarem a aparência estética desses emojis. Ou seja, cada Sistema Operacional, ou determinados dispositivos e aplicativos, possuirão seus estilos de emoji, adequando-se ao design de sua aplicação. Isso as vezes causa problemas de interpretação, pois alguns emojis são extremamente diferentes entre fabricantes, como no caso do emoji do ET <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f47d.png" alt="👽" class="wp-smiley" style="height: 1em; max-height: 1em;" /> e do Robô <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p>
<p><figure id="attachment_903" aria-describedby="caption-attachment-903" style="width: 1372px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-903" src="https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji.jpg" alt="Exemplos de variação de emojis do mesmo tipo" width="1372" height="549" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji.jpg 1372w, https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji-400x160.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji-768x307.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji-1024x410.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/variacoes-emoji-600x240.jpg 600w" sizes="auto, (max-width: 1372px) 100vw, 1372px" /><figcaption id="caption-attachment-903" class="wp-caption-text">Exemplos de variação de emojis do mesmo tipo</figcaption></figure></p>
<p>Fazendo parte também do consórcio, mais recentemente a Adobe resolveu incorporar uma nova estrutura de <em>font</em> para a utilização de emojis personalizados. As <em>fonts</em> SVG foram especificadas por outro consórcio muito conhecido, a W3C, onde especificou o uso de SVG à estrutura de <em>fonts</em> vetoriais. Apesar de não ter sido muito adotada para web, e já estar sendo quase abandonada, a Adobe viu nessa estrutura a chance de lançar famílias tipográficas inteiras baseadas em emojis, que é o caso do <em>EmojiOne</em>. Porém existem também diversos serviços e bibliotecas que substituem os glifos específicos por um padrão personalizado de emoji, no caso para quem pretende usar algo mais personalizado para sistemas web.</p>
<p><figure id="attachment_904" aria-describedby="caption-attachment-904" style="width: 1321px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-904" src="https://velhobit.com.br/wp-content/uploads/2017/12/emojione.jpg" alt="A Adobe na sua atualização de 2016, trouxe algumas novas famílias tipográficas baseadas em emojis." width="1321" height="613" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/emojione.jpg 1321w, https://velhobit.com.br/wp-content/uploads/2017/12/emojione-400x186.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/emojione-768x356.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/emojione-1024x475.jpg 1024w, https://velhobit.com.br/wp-content/uploads/2017/12/emojione-600x278.jpg 600w" sizes="auto, (max-width: 1321px) 100vw, 1321px" /><figcaption id="caption-attachment-904" class="wp-caption-text">A Adobe na sua atualização de 2016, trouxe algumas novas famílias tipográficas baseadas em emojis.</figcaption></figure></p>
<h2>Concluindo</h2>
<p>Os emojis são o resultado de uma evolução natural da comunicação online. Elas são formas de demonstrar emoções e ideias com apenas um caractere e da forma mais universal possível. Não se trata simplesmente de uma terra sem lei, pois todos pertencem a um consórcio específico da área de tecnologia e as empresas devem seguir esses padrões para o funcionamento correto em navegadores e sistemas operacionais.</p>
<p>De código aberto, qualquer um pode acessar o site do <a href="https://unicode.org/emoji/charts-11.0/index.html" target="_blank" rel="noopener">Emoji Unicode</a> e verificar suas tabelas e documentações para criar e implementar as próprias imagens ou comportamentos em seus sistemas.</p>
<p>Se você gostou deste post, compartilhe e, se quiser, deixe seu comentário. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f618.png" alt="😘" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Borda Branca no Contorno Preto do Illustrator &#8211; Como Resolver?</title>
		<link>https://velhobit.com.br/tutoriais/borda-branca-no-contorno-preto-do-illustrator-como-resolver.html</link>
		
		<dc:creator><![CDATA[Rodrigo Portillo]]></dc:creator>
		<pubDate>Sat, 09 Dec 2017 16:50:06 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[aditivas]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[adobe cloud]]></category>
		<category><![CDATA[cc]]></category>
		<category><![CDATA[cmyk]]></category>
		<category><![CDATA[cores]]></category>
		<category><![CDATA[creative cloud]]></category>
		<category><![CDATA[cuidados]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[ilustração]]></category>
		<category><![CDATA[impressão]]></category>
		<category><![CDATA[impressos]]></category>
		<category><![CDATA[publicações]]></category>
		<category><![CDATA[rgb]]></category>
		<category><![CDATA[subtrativas]]></category>
		<category><![CDATA[suite]]></category>
		<guid isPermaLink="false">https://velhobit.com.br/?p=887</guid>

					<description><![CDATA[Borda branca ao redor de elementos pretos no Illustrator? Aqui você vai entender como resolver e ainda aprender um pouco mais sobre fidelidade cores.]]></description>
										<content:encoded><![CDATA[<p>Muitas pessoas, principalmente os menos experiêntes, da área de design não conseguem imaginar o mundo antes da editoração eletrônica. E, realmente, quem não acompanhou sua evolução, pode acreditar que o WYSIWYG (<em>What You See Is What You Get</em>) é algo absoluto. Mas a verdade é que há limitações técnicas que impedem que o que seja mostrado no monitor seja exatamente o que vai ser impresso.</p>
<p>Apesar dessas limitações, os softwares de ilustração e editoração tentam simular situações referentes a cores, formas e até possíveis erros. <a href="https://velhobit.com.br/design/fidelizando-as-cores-de-impressao.html" target="_blank" rel="noopener">Já falamos, inclusive, sobre cores e como manter a fidelidade</a> aqui mesmo no site. Porém, nem sempre essa simulação é perfeita, mas faz-se necessário indicar ao profissional possíveis erros. Por isso, o Illustrator pode apresentar comportamentos que podem parecer bugs, mas que na verdade são apenas alertas e devem ser interpretados como tal.</p>
<p>Um dos casos mais comuns e extremamente discutido nos sites de tecnologia é o caso de uma<em><strong> &#8220;borda branca&#8221;</strong></em> que fica ao redor de alguns elementos mais escuros ou pretos.</p>
<p><figure id="attachment_889" aria-describedby="caption-attachment-889" style="width: 773px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-889" src="https://velhobit.com.br/wp-content/uploads/2017/12/borda-branca.jpg" alt="Detalhe de Borda Esbranquiçada que fica ao redor de objetos pretos" width="773" height="439" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/borda-branca.jpg 773w, https://velhobit.com.br/wp-content/uploads/2017/12/borda-branca-400x227.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/borda-branca-768x436.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/borda-branca-600x341.jpg 600w" sizes="auto, (max-width: 773px) 100vw, 773px" /><figcaption id="caption-attachment-889" class="wp-caption-text">Detalhe de Borda Esbranquiçada que fica ao redor de objetos pretos</figcaption></figure></p>
<h2>Diferentes tipos de preto</h2>
<p>Primeiro precisamos reforçar: <strong>isso não é um bug</strong>. É um alerta do comportamento esperado para um determinado tipo de preto.</p>
<p>Na impressão existem diferentes tipos de preto. Os mais conhecidos são referenciados como <strong>preto simples</strong>, <strong>preto composto</strong> e <strong>preto absoluto</strong>.</p>
<p>Como já sabemos, quem trabalha com impressão costuma trabalhar no modo CMYK (ou outro modo subtrativo), onde temos a cor aplicada a partir de quantidade de pigmento no papel. <strong>O preto simples é aquele que possui apenas o pigmento preto em sua composição</strong>. Porém, o tom desse preto pode variar de acordo com a marca do pigmento, papel onde vai ser aplicado e da calibração da impressora. Todas essas variações acabam por causar uma sensação diferente de preto em cada impresso. Com o tempo, técnicas de calibração e padronizações, essa diferença tem diminuído, mas ainda existe. Nos softwares de edição, esse preto geralmente é representado por um cinza muito escuro. Apesar  disso não ser uma simulação absoluta, essa técnica é usada para que o profissional saiba onde está sendo utilizado o preto simples.</p>
<p>Por outro lado, as vezes a densidade do preto não é apropriada para o projeto, ou um erro de registro pode fazer com que fique uma borda branca ao redor do elemento. Existe várias formas para evitar erros visíveis de registro, como trapping ou, neste caso, sobreposição. Então <strong>o preto composto é uma técnica usada para diminuir erros de registro ou intensificar o tom do preto, onde é adicionado uma quantidade razoável de outros pigmentos nos elementos desejados da imagem</strong>.</p>
<p>Porém, há pessoas que exageram, aplicando o preto absoluto. <strong>O preto absoluto nada mais é do que aplicar 100% de todos os pigmentos disponíveis</strong>. Não é uma técnica recomendada, principalmente em alguns tipos de papeis, por poder causar borrões, relevo ou outros problemas que variam de acordo com a técnica de impressão usada.</p>
<p><figure id="attachment_888" aria-describedby="caption-attachment-888" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-888 size-full" src="https://velhobit.com.br/wp-content/uploads/2017/12/pretos-variacoes.jpg" alt="Variações de Pretos" width="911" height="518" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/pretos-variacoes.jpg 911w, https://velhobit.com.br/wp-content/uploads/2017/12/pretos-variacoes-400x227.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/pretos-variacoes-768x437.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/pretos-variacoes-600x341.jpg 600w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-888" class="wp-caption-text">Variações de Tipos de Pretos</figcaption></figure></p>
<h2>Como Corrigir Esse &#8220;Problema&#8221;?</h2>
<p>Isso na verdade não é um problema do Illustrator, é apenas um indicador. É a forma do Illustrator alertar o usuário que a impressão desse elemento pode causar erros de registro. Ou seja, não significa que essa borda vai aparecer, mas há boas chances de que, se ocorrer um erro na impressão, esse problema aparecerá.</p>
<p><figure id="attachment_890" aria-describedby="caption-attachment-890" style="width: 879px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-890" src="https://velhobit.com.br/wp-content/uploads/2017/12/erro-registro.jpg" alt="Erros de registro ocorrem quando, por algum motivo, as chapas de impressão não estão bem alinhadas, causando um posicionamento errado do local onde a cor foi originalmente planejada." width="879" height="540" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/erro-registro.jpg 879w, https://velhobit.com.br/wp-content/uploads/2017/12/erro-registro-400x246.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/erro-registro-768x472.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/erro-registro-600x369.jpg 600w" sizes="auto, (max-width: 879px) 100vw, 879px" /><figcaption id="caption-attachment-890" class="wp-caption-text">Erros de registro ocorrem quando, por algum motivo, as chapas de impressão não estão bem alinhadas, causando um posicionamento errado do local onde a cor foi originalmente planejada.</figcaption></figure></p>
<p>Primeiro vale lembrar que isso só acontece em documentos abertos no modo CMYK. Então<strong> se você não está fazendo um documento para impressão, troque para o modo RGB</strong> e você não vai ter esse problema (<em>Arquivo &gt; Modo de Cor de Documento &gt; RGB</em>).</p>
<p>Porém, a forma ideal de resolver esse problema, é você aplicar uma quantidade razoável de outros pigmentos ao preto que você está utilizando. Por exemplo, se você está usando o preto para contornar algo magenta, acrescente cerca de 20% a 50% de magenta para esse objeto, o mesmo pode ser feito para outras cores.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-891" src="https://velhobit.com.br/wp-content/uploads/2017/12/detalhe.jpg" alt="" width="956" height="409" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/detalhe.jpg 956w, https://velhobit.com.br/wp-content/uploads/2017/12/detalhe-400x171.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/detalhe-768x329.jpg 768w, https://velhobit.com.br/wp-content/uploads/2017/12/detalhe-600x257.jpg 600w" sizes="auto, (max-width: 956px) 100vw, 956px" /></p>
<p>Apesar de ser uma solução rápida para diversos casos, principalmente onde há muitas cores próximas, uma terceira possibilidade, porém não muito ideal, devido aos problemas já supracitados, é usar o preto absoluto, onde simplesmente é colocado C=100, M=100, Y=100, K=100 ao preto que deseja aplicar.</p>
<h2>Melhorando a Qualidade da Compreensão de Cores</h2>
<p>Se por um lado pode parecer incômodo esse alerta, por outro é ainda mais interessante que você busque uma visualização melhor do material que vai ser impresso.</p>
<p>Para isso, o Illustrator nos trás algumas configurações referentes a forma como o preto é demonstrado.</p>
<p>Para acessar essas configurações, vá ao meno <strong><em>Editar (ou Illustrator, no MacOS) &gt; Preferências &gt; Aparência do Preto</em></strong>. Nessa tela, você pode especificar como vai ser o comportamento do preto na impressão ou exibição. É extremamente recomendado que, se você vai trabalhar com algo que vai ser impresso, marque as opções como <em><strong>Exibir Todos os Pretos Com Precisão</strong></em>. O resultado vai ser uma emulação da diferenciação dos tipos de pretos, de acordo com a porcentagem de pigmentos que você aplicar.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-892" src="https://velhobit.com.br/wp-content/uploads/2017/12/preto.jpg" alt="Tipos de Pretos Compostos" width="622" height="537" srcset="https://velhobit.com.br/wp-content/uploads/2017/12/preto.jpg 622w, https://velhobit.com.br/wp-content/uploads/2017/12/preto-400x345.jpg 400w, https://velhobit.com.br/wp-content/uploads/2017/12/preto-600x518.jpg 600w" sizes="auto, (max-width: 622px) 100vw, 622px" /></p>
<p>Com tudo isso, podemos concluir que o caso da borda, queixa muito comum de usuários do Illustrator, nada mais é do que o indicador de comportamento de preto para impressão. É um caso específico do uso em modo CMYK e é bem-vindo para uma melhor qualidade do material final impresso. É interessante usar a visualização de preto composto, unido a visualização de cores de prova (<em><strong>Visualizar&gt;Cores de Prova</strong></em>), para garantir um controle mais ideal e fidelidade.</p>
<p><span style="color: #008080;"><strong>Compartilhe este post com todos da comunidade de Illustrator ou com aqueles que você imagine que vai tirar um bom proveito das informações aqui passadas.</strong></span></p>
<p><span style="color: #008080;"><strong>Obrigado pelo seu tempo.</strong></span></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
