<?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>A fronteira final &#187; Cameroon</title>
	<atom:link href="http://afronteirafinal.com/category/webmasters/cameroon/feed/" rel="self" type="application/rss+xml" />
	<link>http://afronteirafinal.com</link>
	<description>Audaciosamente indo onde nenhum dev jamais esteve</description>
	<lastBuildDate>Tue, 17 Aug 2010 17:03:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Saiba mais sobre DOM e ECMAScript</title>
		<link>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/</link>
		<comments>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 03:41:46 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[Webmasters]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JScript]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=290</guid>
		<description><![CDATA[Por muito tempo eu fingia saber exatamente o que era DOM, ECMAScript, JScript, DHTML, etc significava. Mas num final de semana desses eu peguei para ler sobre o que eles significam e como eles estão relacionados. Esta é a forma como a especificação DOM define um &#8220;DOM&#8221;: O Document Object Model (DOM) é um Application [...]]]></description>
			<content:encoded><![CDATA[<p>Por muito tempo eu fingia saber exatamente o que era DOM, ECMAScript, JScript, DHTML, etc significava. Mas num final de semana desses eu peguei para ler sobre o que eles significam e como eles estão relacionados.</p>
<p>Esta é a forma como a especificação DOM define um &#8220;DOM&#8221;:</p>
<blockquote><p><strong><em>O Document Object Model (DOM) é um Application Programming Interface (API) para HTML válido e documentos XML bem formatados. Ele define a estrutura lógica dos documentos e o modo como um documento é acessado e manipulado.</em></strong></p></blockquote>
<p><span id="more-290"></span>Em outras palavras, o DOM é uma forma padrão para permitir que as linguagens de programação interajam com documentos HTML / XML. O W3C fornece, o que é chamado de linguagem de vinculações, para o ECMAScript. Isto significa que as funcionalidades definidos na especificação DOM foram implementadas nessa linguagem.</p>
<p>ECMAScript é uma &#8220;uniformização&#8221; da língua (script) dos &#8220;homens das cavernas&#8221; &#8211; Netscape JavaScript e Microsoft JScript para que todos os browsers possam compreender instruções escritas usando o ECMAScript.</p>
<p>Agora, existem três grandes &#8220;dialetos&#8221; do ECMAScript: JavaScript (Firefox / Chrome / Safari), JScript (IE), e ActionScript (Adobe Flash / Flex). Estes são chamados dialetos como suporte a código escrito antes da normalização e fornecem alguns recursos não disponíveis no ECMAScript ou em outros dialetos.</p>
<p>Os navegadores fornecem uma implementação das interfaces do DOM que permite ECMAScript (ou dialetos suportados) interagirem com o DOM de um documento XML/HTML. Assim, a maioria dos browsers decentes, lançado conforme os padrões, dizem qual ECMAScript é suportado para cada versão do seu navegador.</p>
<p>O DOM de uma página HTML tem uma &#8220;árvore-como estrutura&#8221; quando visualizadas. É importante notar que o DOM não representa o conteúdo do HTML, mas representa apenas objetos através dos quais o conteúdo pode ser acessado. Esses objetos são modelados após a marcação que existe na página HTML. As relações, funções, comportamentos e atributos desses objetos são identificados pelo DOM.</p>
<p>Bom, é isso! Você normalmente não precisa de saber sobre interfaces DOM principalmente se você trabalhar com uma biblioteca JavaScript. Mas se você estiver interessado, Quirksmode (<a href="http://www.quirksmode.org" target="_blank">http://www.quirksmode.org</a>) tem uma excelente introdução ao DOM.</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/saiba-mais-sobre-dom-e-ecmascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG vs CANVAS</title>
		<link>http://afronteirafinal.com/svg-vs-canvas/</link>
		<comments>http://afronteirafinal.com/svg-vs-canvas/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 12:42:03 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[DOM SVG]]></category>
		<category><![CDATA[explorecanvas]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[SVG Web]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=211</guid>
		<description><![CDATA[Como você deve ter notado em meu post anterior sobre HTML5 (http://afronteirafinal.com/prepare-se-para-o-html-5), eu abordei sobre SVG e Canvas e nas últimas semanas os debates estão se aquecendo sobre os méritos de cada um, e muitos estão prevendo um &#8220;death match&#8221;. No entanto, minha pesquisa me convence de que cada um tem suas próprias finalidades, mas [...]]]></description>
			<content:encoded><![CDATA[<p>Como você deve ter notado em meu post anterior sobre HTML5 (<a href="http://afronteirafinal.com/prepare-se-para-o-html-5" target="_blank">http://afronteirafinal.com/prepare-se-para-o-html-5</a>), eu abordei sobre SVG e Canvas e nas últimas semanas os debates estão se aquecendo sobre os méritos de cada um, e muitos estão prevendo um &#8220;death match&#8221;. No entanto, minha pesquisa me convence de que cada um tem suas próprias finalidades, mas definitivamente chegou a hora de usá-los.</p>
<h2>O QUE É SVG?</h2>
<p>SVG é uma linguagem para descrever gráficos bidimensionais e aplicações gráficas em XML. Alguns exemplos de SVG são: o logo da Wikipedia (<a href="http://upload.wikimedia.org/wikipedia/commons/7/77/Wikipedia_svg_logo.svg">http://upload.wikimedia.org/wikipedia/commons/7/77/Wikipedia_svg_logo.svg</a>) e o &#8220;Hello World&#8221; do SVG chamado de &#8220;Tiger&#8221; (<a href="http://www.amplesdk.com/examples/svg/tiger">http://www.amplesdk.com/examples/svg/tiger</a>). Veja o fonte desses dois arquivos SVG para ver como SVG parece.<span id="more-211"></span></p>
<p><strong>Demo SVG:</strong></p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="SVG" /></p>
<pre>&lt;svg xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 200 100"
  width="200px" height="100px"&gt;
  &lt;circle cx="50" cy="50" r="30"
  style="stroke:none; fill:#ff0000;"/&gt;
  &lt;g transform="translate(100, 20) scale(1.65)"&gt;
  &lt;polygon points="36 25, 25 36, 11 36, 0 25,
  0 11, 11 0, 25 0, 36 11"
  style="stroke:none; fill:#0000ff;" /&gt;
  &lt;/g&gt;
  &lt;rect x="60" y="20" height="60" width="60"
  style="stroke:none; fill:#00ff00;
  fill-opacity: 0.5;" /&gt;
&lt;/svg&gt;</pre>
<h2>O QUE É CANVAS?</h2>
<p>A especificação do HTML 5 define da seguinte forma: &#8220;Elemento de tela que representa um processamento gráficos &#8220;bitmap&#8221; para gerar imagens, gráficos, jogos através de JavaScript&#8221;.</p>
<p><em>Vladimir Vukićević</em> da Mozilla, em 2006, deu uma boa explicação sobre as diferenças entre o SVG e Canvas:</p>
<p>- SVG é baseado em XML. Isto significa que, cada elemento está disponível no DOM SVG (útil quando você deseja anexar os manipuladores de eventos javascript para um elemento). Canvas não é baseado em XML.</p>
<p>- Canvas é processado pixel por pixel. SVG é um monte de vetores e precisa ser manipulado como um grupo de formas. Uma analogia no mundo Photoshop seria, criar um retângulo usando a &#8220;ferramenta forma&#8221; contra usar o &#8220;PaintBrush&#8221;.</p>
<p><strong>Demo Canvas:</strong></p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="Canvas" /></p>
<p>E aqui está o JavaScript que o criou o desenho:</p>
<pre>function drawSimpleCanvas() {
 var canvas =
 document.getElementById("simpleCanvas");
  if (canvas.getContext) {
  var ctx = canvas.getContext("2d");
  ctx. (); // the circle
  ctx.fillStyle = "#ff0000";
  ctx.arc(50, 50, 30, 0, 2*Math.PI, true);
  ctx.closePath();
  ctx.fill();
  ctx.save();
  // move and resize the octagon
  ctx.translate(100, 20);
  ctx.scale(1.65, 1.65);
  ctx.fillStyle = "#0000ff";
  ctx.beginPath();
  ctx.moveTo(36, 25); ctx.lineTo(25, 36);
  ctx.lineTo(11, 36); ctx.lineTo(0, 25);
  ctx.lineTo(0, 11); ctx.lineTo(11, 0);
  ctx.lineTo(25, 0); ctx.lineTo(36, 11);
  ctx.closePath();
  ctx.fill();
  // restore graphics as they
  // were before move and resize
  ctx.restore();
  ctx.fillStyle = "#00ff00";
  ctx.globalAlpha = 0.5;
  ctx.beginPath();
  ctx.rect(60, 20, 60, 60);
  ctx.closePath();
  ctx.fill();
 }
}</pre>
<h2>QUEM VAI GANHAR?</h2>
<p>Mesmo que sejam completamente diferentes na sua natureza e finalidade, há várias coisas que pode ser feito usando &#8220;Canvas&#8221; e &#8220;SVG&#8221;. A recente popularização do elemento &#8220;Canvas&#8221; parecem para  algumas pessoas a morte do SVG. Mas pelo que notei está longe da verdade.</p>
<p>O &#8220;Canvas&#8221; é tão bom como uma imagem &#8211; mas ele não manipula pixel por pixel. Neste momento, elemento Canvas não suporta os &#8220;manipuladores&#8221; de eventos (por exemplo, ter um retângulo 20x60px dentro de um canvas que seja clicável). Já com o SVG isso é possível.</p>
<p>Canvas em seu estado &#8220;natural&#8221; não é acessível. O SVG, porém, é bastante acessível.</p>
<p>No entanto existe diferenças significativas de desempenho entre Canvas e SVG. O resultado do experimento descrito no link (<a href="http://www.borismus.com/canvas-vs-svg-performance" target="_blank">http://www.borismus.com/canvas-vs-svg-performance</a>) é que: Canvas é mais adequado para um &#8220;gráficos intensivos&#8221; onde o objeto são os redesenhos com freqüência (como um jogo), enquanto o SVG é melhor para aplicações que envolvem grandes áreas de processamento (como Google Maps).</p>
<h2>POSSO USÁ-LOS AGORA?</h2>
<p>Sim, pode. Existem muitas iniciativas para permitir que os navegadores que não suportam SVG ou Canvas tornarem-se &#8220;usáveis&#8221; por outros meios. O Google tem um impressionante projeto <strong>SVG Web</strong> (<a href="http://code.google.com/p/svgweb/" target="_blank">http://code.google.com/p/svgweb/</a>) que usa o Flash para renderizar SVG em navegadores que não suportam SVG nativamente. Para Canvas, o Google tem uma biblioteca &#8220;<strong>explorecanvas</strong>&#8221; (<a href="http://code.google.com/p/explorercanvas/" target="_blank">http://code.google.com/p/explorercanvas/</a>) que utiliza VML (ou Silverlight) para processar os elementos Canvas (basta incluir o arquivo excanvas.js, e ele deve funcionar) no Internet Explorer.</p>
<h2>ENTÃO&#8230; QUEM GANHA?</h2>
<p>Ambos. Estas é uma fase fantástica para SVG e Canvas. Finalmente temos uma alternativa natural para o &#8220;Flash&#8221; e animação de necessidade básica. Mantenha seus olhos abertos no &#8220;mailing list&#8221;  do &#8220;W3C HTML Working Group&#8221; (<a href="http://lists.w3.org/Archives/Public/public-html/" target="_blank">http://lists.w3.org/Archives/Public/public-html/</a>) para as últimas notícias.</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/svg-vs-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que você tem que saber sobre CSS3</title>
		<link>http://afronteirafinal.com/o-que-voce-tem-que-saber-sobre-css3/</link>
		<comments>http://afronteirafinal.com/o-que-voce-tem-que-saber-sobre-css3/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:58:14 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Gecko]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=163</guid>
		<description><![CDATA[Muitos de vocês provavelmente já perceberam toda a agitação em torno do CSS3, mas exatamente quais técnicas podemos usar hoje? Neste artigo, vou mostrar algumas técnicas diferentes CSS3, que alguns dos principais navegadores (mais especificamente Firefox, Chrome, Safari e Opera) já suportam. Com isso ficará evidente a degradação do layout pela falta de suporte dos [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos de vocês provavelmente já perceberam toda a agitação em torno do CSS3, mas exatamente quais técnicas podemos usar hoje?</p>
<p>Neste artigo, vou mostrar algumas técnicas diferentes CSS3, que alguns dos principais navegadores (mais especificamente Firefox, Chrome, Safari e Opera)  já suportam. Com isso ficará evidente a degradação do layout pela falta de suporte dos outros browsers (como por exemplo o Internet Explorer). Usando as extensões específicas disponíveis para cada navegador, muitos dos estilos que estão sendo especificados no CSS3 já podem ser usados hoje!</p>
<h3>CSS Vendor Extensions</h3>
<p>O CSS permite que os desenvolvedores de navegadores criem implementações proprietárias para os mais variados estilos CSS. Isso permite ao distribuidor do navegador realize implementações próprias para determinada propriedade CSS, mesmo que já padronizado ou especificado, o que não é tão comum nem tão recomendado. Para utilizar no CSS, a propriedade que deseja utilizar para determinado(s) navegador(es) deve ser precedida de um prefixo. Esse prefixo indicará que se trata de uma extensão que somente aquele navegador interpretará.<br />
<br />
<em><strong>Alguns browsers com seus prefixos (CSS Proprietary Extensions Scheme):</strong></em></p>
<ul>
<li>Firefox : -moz-</li>
<li> Safari: -webkit-</li>
<li>Chrome: -webkit-</li>
<li>Opera: -o-</li>
<li>IE: -ms-</li>
</ul>
<p>A grande vantagem das extensões é que os navegadores podem ir implementando as novas propriedades, como no caso do CSS3. Propriedades essas que já estão previstas, porém não especificadas. Isso certamente acelera a evolução dos navegadores em relação ao suporte às novas propriedades; Prepara os &#8220;CSS coders&#8221; para a nova forma de trabalhar; e contribui para a especificação oficial do CSS propriamente dita.<br />
Clique se quiser saber mais sobre <a target="_blank" href="http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords" rel="nofollow">(CSS Proprietary Extensions Scheme)</a>;</p>
<p>Como você deve ter percebido, uma grande desvantagem de usar essas extensões é o fato de que acabamos tendo que repetir as propriedades para que funcione em todos os navegadores. É isso ou procurar soluções com javascript, folhas de estilos alternativas entre outras &#8220;viagens&#8221; para que a manutenção do código continue simples onerando o mínimo de recursos. Tudo bem, não basta falar, vamos mergulhar na direito no CSS3! Nota: os estilos sem um prefixo é a proposta da especificação atual W3C.</p>
<p><span id="more-163"></span></p>
<h3>Uma nota sobre os Demos nesta página</h3>
<p>Todos os exemplos estão nesta página, por isso, se você não está vendo alguns exemplos corretamente (ou nada), então o navegador que você está usando não dá suporte a técnica particular CSS3.</p>
<h3>Sombras</h3>
<p>O efeito de sombra aceita vários valores. Em primeiro lugar é simplesmente a cor da sombra. Ele aceita quatro valores de &#8220;length&#8221; e os dois primeiros são os x (offset horizontal) e do y (offset vertical). O valor seguinte é a quantidade de desfoque adicionado à sombra. O valor da quarta e última, é a quantidade propagação da sombra. &#8220;Box shadow&#8221; também vai aceitar uma palavra-chave &#8220;inset&#8221; que vai criar uma sombra interna.</p>
<pre class="brush: css">box-shadow: #333 3px 3px 4px;
-moz-box-shadow: #333 3px 3px 4px;
-webkit-box-shadow: #333 3px 3px 4px;</pre>
<p><span style="text-decoration: underline;">DEMO DE SOMBRA</span></p>
<pre class="brush: css">&lt;p&gt;
&lt;div style=&quot;width: 500px; height: 100px; margin-left:50px; color: #FFF;
background-color: #069; padding: 0 7px 0 7px; box-shadow: #333 3px 3px 4px;
-moz-box-shadow: #333 3px 3px 4px; -webkit-box-shadow: #333 3px 3px 4px;&quot;&gt;
&amp;amp;amp;amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;</pre>
<h3>Gradientes</h3>
<p>Gradientes pode ser bastante confuso no início, especialmente quando se comparam as diferenças -moz e -webkit. Com -moz você primeiro definir a direção do gradiente, em seguida, determinar o início e término. Da -webkit tem um pouco mais de código. Primeiro você define o tipo de gradiente. Os próximos dois valores definem a direção. Finalmente, os últimos dois valores definem o início e término da cor do gradiente.</p>
<pre class="brush: css">-moz-linear-gradient(-90deg,#1aa6de,#022147);
-webkit-gradient(linear, left top, left bottom, from(#1aa6de), to(#022147));</pre>
<p><span style="text-decoration: underline;">DEMO DE GRADIENTE</span></p>
<pre class="brush: css">&lt;p&gt;
&lt;div style=&quot;width: 500px; height: 100px; background-color:#2e3192;
background: -moz-linear-gradient(-90deg,#1aa6de,#022147);
-webkit-gradient(linear, left top, left bottom, from(#069), to(#036));&quot;&gt;
&amp;amp;amp;amp;nbsp;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;</pre>
<h3>RGBA</h3>
<p>O método de cor RGBA realmente é mais fácil do que pode parecer à primeira vista. Leva quatro valores e na ordem em que estão: a quantidade de vermelho, a quantidade de verde, de azul e do nível de opacidade. Em vez de usar cor em (#) hexadecimal, defina o modo de cor em RGB, quanto o nível de opacidade pode se ver a cor transparente. A opacidade aceita valores entre 0 e 1. Com 0 sendo completamente opaco e 1 sendo a cor real definida. O exemplo abaixo tem um valor de opacidade da .5 fazendo com que o elemento fique com 50% de transparência. RGBA na verdade não necessita de qualquer das extensões do navegador.</p>
<pre class="brush: css">background-color: rgba(0, 54, 105, .5);</pre>
<p><span style="text-decoration: underline;">DEMO DE RGBA</span></p>
<pre class="brush: css">&lt;p&gt;
&lt;div style=&quot;width: 480px; height: 80px; text-align: center;
padding: 10px; background-color: rgba(0, 54, 105, .5);&quot;&gt;
Este elemento está com 50% de transparência &lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;</pre>
<h3>HSL</h3>
<p>Junto com RGBA, CSS3 pode tornar o modelo de cor HSL disponível para nós. Isso poderia dar-nos todo um arsenal de cores e tons. Neste modelo de cor, HSL (H = tonalidade, S = saturação, L = luminosidade).  Tonalidade é um grau na &#8220;roda de cores&#8221;, enquanto a saturação e a luminosidade são valores percentuais das cores.</p>
<pre class="brush: css">background-color: hsl(209, 41.2%, 20,6%);</pre>
<p><span style="text-decoration: underline;">DEMO HSL</span></p>
<pre class="brush: css">&lt;p&gt;
&lt;div style=&quot;width: 480px; height: 80px; padding: 10px;
background-color: hsl(209, 41.2%, 20,6%);&quot;&gt; &amp;amp;amp;amp;nbsp; &lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;</pre>
<h3>Cor da Borda</h3>
<p>Com este estilo, você deve definir border-top border-right border-bottom e border-left separadamente para obter o efeito abaixo. Você vai perceber que eu tenho definido uma borda de 8px juntamente com 8 cores diferentes para cada estilo de cor da borda. Isso porque a mesma quantidade de cores tem de coincidir com a quantidade de pixels na definição da borda.</p>
<pre class="brush: css">border: 8px solid #000;
-moz-border-bottom-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-top-colors:    #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-left-colors:   #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-right-colors:  #555 #666 #777 #888 #999 #aaa #bbb #ccc;</pre>
<p><span style="text-decoration: underline;">DEMO COR DA BORDA</span></p>
<pre class="brush: css">&lt;p&gt;
&lt;div style=&quot;width: 500px; height: 100px;
background-color: #2e3192; border: 8px solid #000;
-moz-border-bottom-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-top-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-left-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;
-moz-border-right-colors: #555 #666 #777 #888 #999 #aaa #bbb #ccc;&quot;&gt;
&amp;amp;amp;amp;nbsp; &lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;</pre>
<h3>Seleção Cor do Texto</h3>
<p>Devo dizer que mudar a cor de seleção de texto é um recurso muito bacana. Com o pseudo-elemento ::selection, você pode alterar a color e background quando o usuário destaca um elemento de texto. O ::selection foi removido do projecto CSS3 atual, mas deixa a esperança que irão adicioná-lo novamente mais tarde!</p>
<pre class="brush: css">::selection {
background: #3C0; /* Safari */
color: #90C;
}
::-moz-selection {
background: #3C0; /* Firefox */
color: #90C;
}</pre>
<p><span style="text-decoration: underline;">DEMO SELEÇÃO DE TEXTO</span></p>
<pre class="brush: css">&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#textSelection { width: 500px; }
/* Safari */
p.selection::selection { background: #3C0; color: #90C; }
/* Firefox */
p.selection::-moz-selection { background: #3C0; color: #90C; }
--&gt;
&lt;/style&gt;
&lt;div id=&quot;textSelection&quot;&gt;
&lt;p&gt;Selecione o texto para ver o efeito deste recurso! Selecione o texto para
ver o efeito deste recurso! Selecione o texto para ver o efeito deste recurso!
Selecione o texto para ver o efeito deste recurso! Selecione o texto para ver o
efeito deste recurso! Selecione o texto para ver o efeito deste recurso! Selecione
o texto para ver o efeito deste recurso! Selecione o texto para ver o efeito deste
recurso! Selecione o texto para ver o efeito deste recurso! Selecione o texto para
ver o efeito deste recurso! Selecione o texto para ver o efeito deste recurso!
Selecione o texto para ver o efeito deste recurso! &lt;/p&gt;
&lt;/div&gt;</pre>
<h3>Transformação</h3>
<p>Com o estilo &#8220;transform&#8221;, você pode fazer os elementos &#8220;crescerem&#8221;, quando o mouse estiver sobre o elemento. Com um valor acima de 1 o elemento irá aumentar de tamanho. Por outro lado, com um valor abaixo de 1 fará com que o elemento diminuir de tamanho. Junto com o &#8220;scale&#8221; o &#8220;transform&#8221; tem muitos diferentes formas de uso. Visite a página do desenvolvedor do Firefox para ver o que mais você pode usar. (<a href="https://developer.mozilla.org/En/CSS/-moz-transform">https://developer.mozilla.org/En/CSS/-moz-transform</a>)</p>
<pre class="brush: css">-moz-transform: scale(1.15);
-webkit-transform: scale(1.15);</pre>
<p><span style="text-decoration: underline;">DEMO DE TRANSFORMAÇÃO</span></p>
<pre class="brush: css">&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#transform ul { list-style:none; background:none; }
#transform ul li{ width: 200px; color:#FFF; list-style: none; padding: 5px;
background:none; background-color: #069; border-bottom: #036 solid 1px; }
#transform li a:link { color: white; }
#transform li:hover { -moz-transform: scale(1.15); -webkit-transform: scale(1.15);
background-color: #003669; }
--&gt;
&lt;/style&gt;
&lt;div id=&quot;transform&quot;&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;A Empresa&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Produtos&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Serviços&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contato&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;</pre>
<h3>Layout Multi-column</h3>
<p>Com este novo estilo de &#8220;layout multi-column&#8221;, podemos dar ao nosso texto um &#8220;estilo jornal&#8221;. Implementar isto é muito simples em relação ao modo &#8220;tradicional&#8221; de se fazer com CSS. Primeiro eu especifico quantas colunas eu quero, o tipo de regra que eu quero para separá-las, e como que &#8220;espaçamento&#8221; eu quero entre as colunas. Simples não?</p>
<pre class="brush: css">-moz-column-count:3;
-moz-column-rule: solid 1px black;
-moz-column-gap: 20px;</pre>
<p><span style="text-decoration: underline;">DEMO DE MULTI-COLUMN</span></p>
<pre class="brush: css">&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#multiColumns {
	-moz-column-count:3;
	-moz-column-rule: solid 1px black;
	-moz-column-gap: 20px; }
--&gt;
&lt;/style&gt;
&lt;div id=&quot;multiColumns&quot;&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;/p&gt;
&lt;/div&gt;</pre>
<h3>Resumo</h3>
<p>Espero que todos estão tão animado com o CSS3 como eu estou. Ele nos dá mais poder tanto para webmasters quanto para desenvolvedores, e em muitos aspectos muito mais simples. Agora, se nós pudéssemos chegar em todos os navegadores e dizer para apoiá-lo seria fantástico! O que eu mostrei são apenas algumas das novas características potenciais do CSS3. Se você quiser obter mais informações, dicas e/ou ajuda, eu aconselho a visitar todos os sites abaixo:</p>
<p>* CSS: Current Work (<a href="http://www.w3.org/Style/CSS/current-work" target="_blank">http://www.w3.org/Style/CSS/current-work</a>)</p>
<p>* CSS3.info (<a href="http://www.css3.info/" target="_blank">http://www.css3.info/</a>)</p>
<p>* Mozilla CSS Extensions (<a href="https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions" target="_blank">https://developer.mozilla.org/en/CSS_Reference/Mozilla_Extensions</a>)</p>
<p>* The WebKit Open Source Project (<a href="http://webkit.org/" target="_blank">http://webkit.org/</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/o-que-voce-tem-que-saber-sobre-css3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prepare-se para o HTML 5</title>
		<link>http://afronteirafinal.com/prepare-se-para-o-html-5/</link>
		<comments>http://afronteirafinal.com/prepare-se-para-o-html-5/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 18:45:12 +0000</pubDate>
		<dc:creator>lcameroon</dc:creator>
				<category><![CDATA[Cameroon]]></category>
		<category><![CDATA[(X)HTML 5]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Web Forms 2]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=14</guid>
		<description><![CDATA[Com apoio no Chrome, Firefox 3.5, Opera e Safari, o HTML 5 está chegando em você como um trem desgovernado. Aqui estão algumas sugestões para ajudar você a se preparar para subir a bordo ao invés de ser deixada na plataforma ou atropelado. Veja o que outros têm feito A primeira coisa que você pode [...]]]></description>
			<content:encoded><![CDATA[<p>Com apoio no Chrome, Firefox 3.5, Opera e Safari, o HTML 5 está chegando em você como um trem desgovernado. Aqui estão algumas sugestões para ajudar você a se preparar para subir a bordo ao invés de ser deixada na plataforma ou atropelado.</p>
<p><span id="more-14"></span></p>
<p><strong>Veja o que outros têm feito</strong></p>
<p>A primeira coisa que você pode fazer para se preparar para o HTML 5 é ver como as outras pessoas estão usando. Uma visita à galeria de HTML 5 (<a title="http://html5gallery.com/" href="http://html5gallery.com/" target="_blank">http://html5gallery.com/</a>) vai mostrar como vários sites já estão usando os novos elementos de HTML 5. Use-o como fonte de inspiração!</p>
<p><strong>Agora, mão à obra</strong></p>
<p>Você pode olhar para os sites (<a title="http://html5doctor.com/" href="http://html5doctor.com/" target="_blank">http://html5doctor.com/</a>), ler todos os artigos disponíveis na internet e até mesmo ler as especificações (<a title="http://www.whatwg.org/specs/web-apps/current-work/" href="http://www.whatwg.org/specs/web-apps/current-work/" target="_blank">http://www.whatwg.org/specs/web-apps/current-work/</a>), mas nenhum deles vão te ajudar a entender o HTML 5, tanto quanto utilizando os novos elementos. Você pode modificar parte de um site existente ou fazer uma experiência criando novas páginas. Faça isso com seu site pessoal, de amigos ou até  em sua empresa.</p>
<p>Ao fazer isso, você vai descobrir o que funciona e o que não funciona. Por exemplo, eu descobri que o Firefox 3.5 trata elementos como o <strong>article</strong> e a <strong>section</strong> como <strong>display:inline </strong>e eu tinha que definir explicitamente-los para <strong>display:block</strong> para fazê-los funcionar como esperado.</p>
<p><strong>O (X) em análise</strong></p>
<p>Se você é como a maioria dos designers, você provavelmente não escreve todas as marcações (tags) na mão. Mas até os bons editores tentam acompanhar os novos elementos de (X)HTML 5,  e mesmo assim você acaba fazendo algumas marcações na mão e desta forma você acaba aprendendo um pouco. Existe um pouco de confusão (e polêmica!) sobre a relação entre HTML 5, XHTML 1.0/1.1 e XHTML 5. Vamos deixar tudo bem claro agora.</p>
<p>HTML 4.0 (a linguagem de marcação que todos nós conhecemos e amamos) é baseada em um &#8220;livro de regras&#8221; (rulebook) chamado SGML. No livro de regras da SGML, os nomes dos elementos não são &#8220;case sensitive&#8221;, você pode ter elementos com tags de fechamento opcional (como <strong>&lt;p&gt;</strong>) e você pode ter valores de atributo sem aspas.</p>
<p>XHTML 1.0 e 1.1 são baseados em um &#8220;livro de regras&#8221; chamado XML. No livro de regras XML, elemento e atributo nomes são &#8220;case sensitive&#8221;, cada tag de abertura deve ter uma tag de fechamento e os valores dos atributos devem estar entre aspas.</p>
<p>HTML 5 define uma linguagem de marcação que não seja baseado em qualquer livro de regras, mas podem ser escritas de &#8220;forma HTML&#8221; (ou renderizada, conforme a especificação chamada) ou de &#8221; forma XHTML&#8221;.</p>
<p>Quando você escreve de &#8220;forma HTML&#8221;, você está autorizando deixar algumas tags abertas, valores de atributos sem aspas e elementos e nomes de atributos não são case sensitive. Você também terá de usar em algumas tags marcação XML, será obrigado a colocar barra em elementos como <strong>&lt;img /&gt;</strong> ou <strong>&lt;hr /&gt;</strong></p>
<p>Quando você usa a serialização XHTML, você tem que seguir as regras XML mencionado alguns parágrafos atrás.</p>
<p>Eu sugiro que você escreva a sua marcação em XHTML 5, ou, se você usar o HTML 5, fazer a marcação como se fosse XHTML. Vai ser melhor ficar com o padrão XML que requer um tag de fechamento para cada tag de abertura, em vez de gastar o seu tempo de para otimizar as tags que têm fechamento e/ou abertura opcional. Da mesma forma, colocar com aspas todos os valores de atributo ao invés de tentar decidir quando você pode deixar o valor de atributo sem aspas. Além de não ter que gastar neurônios sobre essas decisões, a marcação será mais consistente.</p>
<p>Se você utiliza alguma ferramenta de geração automática de marcação configure para gerar XHTML 5 em vez do HTML 5. O uso de XML é o futuro, seus espaços permitem que você tenha documentos &#8220;poliglota&#8221;, que consistem em várias marcações para além do HTML5 o RDF, MathML e o SVG. Você também pode usar ferramentas como XPath, XSLT e XQuery de marcação baseada em XML, utilizando qualquer analisador XML de sua escolha.</p>
<p>Claro, nem tudo é boa notícia. Se você trabalhar com XHTML 5, lembre-se que o servidor deve entregar os documentos com um tipo MIME de <strong>application/xhtml+xml</strong> ou <strong>text/xml</strong>. Isto pode envolver a negociação com o seu serviço de hospedagem. Além disso, quando você entregar um arquivo XML, qualquer erro de sintaxe irá causar uma mensagem de erro.</p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/xml_parsing_error.png" alt="Error Message" /></p>
<p>Se você estiver fazendo a marcação com a mão, acho que essas mensagens de erro manterá você fiel a validação. Se você estiver usando ferramentas que criam XHTML, não há problema, pois a maioria das ferramentas produzem códigos XML bem formados.</p>
<p><strong>Expressões Regulares</strong></p>
<p>HTML 5 estende o elemento <strong> input</strong> oferecendo novos atributos que permitem especificar os dados de entrada. Esses atributos incluem <strong> min</strong> e <strong>max</strong> (para definir um intervalo numérico), e também oferece novos valores para o atributo <strong>type</strong> como a <strong> url</strong>, <strong> email</strong>, <strong>date</strong> e <strong>time</strong></p>
<p>Se nenhum desses novos tipos de entrada atendem às suas necessidades o HTML 5 fornece o atributo <strong>pattern</strong> para elementos <strong>input</strong> com <strong>type=&#8221;text&#8221;</strong>. O valor do atributo <strong>pattern</strong> é uma expressão regular, tal como definido no ECMAScript e utilizado em JavaScript. As expressões regulares são uma forma concisa e talvez um tanto enigmática de especificar um padrão de caracteres. Por exemplo, se eu quiser um jogo de cinco dígitos mais hífen e três caracteres para CEP, posso usar esse padrão:</p>
<pre><strong>([0-9]{5}-[0-9]{3})</strong></pre>
<p>Todo poder do novo formulário web já estão parcialmente implementado no Safari e Chrome, e completamente no Opera (veja este site <a title="http://a.deveria.com/caniuse/" href="http://a.deveria.com/caniuse/" target="_blank">http://a.deveria.com/caniuse/</a> para obter mais informações sobre a capacidade de cada browser). Não se preocupe se o seu browser ainda não suporta as extensões do form para o HTML 5, você pode fazer o download do Google Web Forms 2 (<a title="http://code.google.com/p/webforms2/" href="http://code.google.com/p/webforms2/" target="_blank">http://code.google.com/p/webforms2/</a>)</p>
<p>Aqui está um exemplo de formulário que valida data e cep:</p>
<pre>&lt;p&gt;
  Digite uma data: &lt;input type="date" name="data"
  required="required"
  title="Fotmato de data dd-mm-yyyy" /&gt;
&lt;/p&gt;</pre>
<pre>&lt;p&gt;
  Digite um cep:
  &lt;input type="text" name="cep"
   required="required"
   pattern="([0-9]{5}-[0-9]{3})"
title="CEP: 99999-999" /&gt;
&lt;/p&gt;</pre>
<p>As expressões regulares são muito úteis e vale a pena investir um tempo para aprender. Muitos editores de texto já tem integrado pesquisa com expressão regular e substituição características, e quando você começar a usá-los, você nunca mais conseguirá ficar  sem eles.</p>
<p><strong>Arte estática com SVG</strong></p>
<p>Se você quiser que as bordas nítidas, o HTML 5 permite que você use SVG (Scalable Vector Graphics) em seus documentos. Colocar inline SVG é parcialmente implementado em Firefox, Safari e Opera, de acordo com este site (<a title="http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers" href="http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers" target="_blank">http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers</a>).</p>
<p>E aqui está o SVG gerado:</p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="SVG" /></p>
<pre>&lt;svg xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 200 100"
  width="200px" height="100px"&gt;
  &lt;circle cx="50" cy="50" r="30"
  style="stroke:none; fill:#ff0000;"/&gt;
  &lt;g transform="translate(100, 20) scale(1.65)"&gt;
  &lt;polygon points="36 25, 25 36, 11 36, 0 25,
  0 11, 11 0, 25 0, 36 11"
  style="stroke:none; fill:#0000ff;" /&gt;
  &lt;/g&gt;
  &lt;rect x="60" y="20" height="60" width="60"
  style="stroke:none; fill:#00ff00;
  fill-opacity: 0.5;" /&gt;
&lt;/svg&gt;</pre>
<p>Embora seja possível usar o JavaScript para modificar dinamicamente um gráfico SVG, HTML 5 oferece uma melhor solução:</p>
<p><strong>Canvas em ação</strong></p>
<p>O elemento de canvas é uma das características mais marcantes do HTML 5, e é suportada pelo Firefox, Safari, Opera e Chrome mas não pelo Internet Explorer. O elemento de <strong>canvas</strong> é realmente uma característica promissora. Você usa JavaScript para desenhar o que você precisa sobre a tela em branco. (Obs: A qualidade gráfica me surpreendeu!)</p>
<p>Aqui está o mesmo desenho feito com SVG em Canvas:</p>
<p><img src="http://afronteirafinal.com/imgs/posts/200911/svg.png" alt="Canvas" /></p>
<p>E aqui está o JavaScript que o criou o desenho:</p>
<pre>function drawSimpleCanvas() {
 var canvas =
 document.getElementById("simpleCanvas");
  if (canvas.getContext) {
  var ctx = canvas.getContext("2d");
  ctx. (); // the circle
  ctx.fillStyle = "#ff0000";
  ctx.arc(50, 50, 30, 0, 2*Math.PI, true);
  ctx.closePath();
  ctx.fill();
  ctx.save();
  // move and resize the octagon
  ctx.translate(100, 20);
  ctx.scale(1.65, 1.65);
  ctx.fillStyle = "#0000ff";
  ctx.beginPath();
  ctx.moveTo(36, 25); ctx.lineTo(25, 36);
  ctx.lineTo(11, 36); ctx.lineTo(0, 25);
  ctx.lineTo(0, 11); ctx.lineTo(11, 0);
  ctx.lineTo(25, 0); ctx.lineTo(36, 11);
  ctx.closePath();
  ctx.fill();
  // restore graphics as they
  // were before move and resize
  ctx.restore();
  ctx.fillStyle = "#00ff00";
  ctx.globalAlpha = 0.5;
  ctx.beginPath();
  ctx.rect(60, 20, 60, 60);
  ctx.closePath();
  ctx.fill();
 }
}</pre>
<p>Veja Canvas tutorial da Mozilla (<a title="Canvas tutorial" href="https://developer.mozilla.org/en/Canvas_tutorial" target="_blank">https://developer.mozilla.org/en/Canvas_tutorial</a>) para uma introdução mais aprofundada.</p>
<p><strong>O que você está esperando?</strong></p>
<p>Apesar de alguns desenvolvedores terem receio sobre a direção em que o HTML 5 está levando a web (e eu compartilho com este receio), as características do HTML 5 são bem interessantes e vale a pena ser explorada. Assim, comece a olhar código fonte de outras pessoas, e fazer experiências em seu próprio site, e mergulhe nas novas características de validação de formulários e as de CANVAS.</p>
<h6><em>Post baseado no artigo de J. David Eisenberg (<a title="catcode@catcode.com" href="mailto:catcode@catcode.com">catcode@catcode.com</a>) também escritor do livro SVG &#8211; Scalable Vector Graphics e professor em San Jose, CA.</em></h6>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/prepare-se-para-o-html-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
