<?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; css</title>
	<atom:link href="http://afronteirafinal.com/tag/css/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>@font-face &#8211; Tipografia livre</title>
		<link>http://afronteirafinal.com/font-face-tipografia-livre/</link>
		<comments>http://afronteirafinal.com/font-face-tipografia-livre/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 21:23:24 +0000</pubDate>
		<dc:creator>Leonardo Caineli</dc:creator>
				<category><![CDATA[Caineli]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fontes]]></category>
		<category><![CDATA[tipografia]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=346</guid>
		<description><![CDATA[A propriedade @font-face do CSS possibilita aos browsers renderizar fontes que não estão instaladas no computador do usuário. Exemplo: @font-face{ font-family:&#039;Comic Book&#039;; src:local(&#039;Comic Book&#039;),url(&#039;Comic Book.ttf&#039;) format(&#039;TrueType&#039;); } p{font-family:&#039;Comic Book&#039;,arial,helvetica,sans-serif} Valores: O valor &#8220;local&#8221; informa se a fonte já existe no sistema operacional do usuário antes de ser instalada O valor &#8220;url&#8221; informa o caminho da [...]]]></description>
			<content:encoded><![CDATA[<p>A propriedade @font-face do CSS possibilita aos browsers renderizar fontes que não estão instaladas no computador do usuário. Exemplo:</p>
<pre class="brush: css">
@font-face{
	font-family:&#039;Comic Book&#039;;
	src:local(&#039;Comic Book&#039;),url(&#039;Comic Book.ttf&#039;) format(&#039;TrueType&#039;);
}
p{font-family:&#039;Comic Book&#039;,arial,helvetica,sans-serif}
</pre>
<h2>Valores:</h2>
<ul style="margin-bottom:20px">
<li>O valor <strong>&#8220;local&#8221;</strong> informa se a fonte já existe no sistema operacional do usuário antes de ser instalada</li>
<li>O valor <strong>&#8220;url&#8221;</strong> informa o caminho da fonte que será instalada</li>
<li>O valor <strong>&#8220;format&#8221;</strong> informa qual é o formato da fonte que será instalada</li>
</ul>
<h2>Formatos:</h2>
<p>Os formatos aceitos pelos browsers são:</p>
<ul style="margin-bottom:20px">
<li><strong>Embedded OpenType</strong> &#8211; .eot</li>
<li><strong>OpenType</strong> &#8211; .otf</li>
<li><strong>Scalable Vector Graphics</strong> &#8211; .svg e .svgz (formato .svg &#8220;gzipado&#8221;)</li>
<li><strong>TrueType</strong> &#8211; .ttf</li>
</ul>
<p>O Internet Explorer suporta apenas o formato Embedded OpenType (.eot), portanto deverão ser declarados dois formatos, sendo um exclusivo para as versões do Internet Explorer (.eot) e/ou outro(s) para os demais browsers (.otf, .svg, .svgz e .ttf). Exemplo:</p>
<pre class="brush: css">
@font-face{
	font-family:&#039;Comic Book&#039;;
	src:url(&#039;Comic Book.eot&#039;); /* IE */
	src:local(&#039;Comic Book&#039;),url(&#039;Comic Book.ttf&#039;) format(&#039;TrueType&#039;); /* DEMAIS BROWSERS */
}
p{font-family:&#039;Comic Book&#039;,arial,helvetica,sans-serif}
</pre>
<p>Exemplo declarando outros formatos:</p>
<pre class="brush: css">
@font-face{
	font-family:&#039;Comic Book&#039;;
	src:url(&#039;Comic Book.eot&#039;); /* IE */
	src:local(&#039;Comic Book&#039;),
	    url(&#039;Comic Book.otf&#039;) format(&#039;OpenType&#039;);
	    url(&#039;Comic Book.svg&#039;) format(&#039;Scalable Vector Graphics&#039;);
	    url(&#039;Comic Book.svgz&#039;) format(&#039;Scalable Vector Graphics&#039;);
	    url(&#039;Comic Book.ttf&#039;) format(&#039;TrueType&#039;)
}
p{font-family:&#039;Comic Book&#039;,arial,helvetica,sans-serif}
</pre>
<h2>Compatibilidade:</h2>
<p>A propriedade @font-face é compatível com os principais sistemas operacionais e browsers (inclusive o Internet Explorer 6):</p>
<ul style="margin-bottom:20px">
<li><strong>Linux</strong> &#8211; Chrome e Firefox</li>
<li><strong>Mac OS</strong> &#8211; Chrome, Firefox, Opera e Safari</li>
<li><strong>Windows</strong> &#8211; Internet Explorer 6, 7, 8 e 9, Chrome, Firefox, Opera e Safari</li>
</ul>
<h2>Talvez ajude&#8230;</h2>
<ul style="margin-bottom:20px">
<li><a href="http://www.fontsquirrel.com/fontface/generator/" title="@font-face Generator" rel="external"><strong>@font-face Generator</strong></a> &#8211; Gerar fontes para outros formatos</li>
<li><a href="http://www.freefontconverter.com/" title="Free Font Converter" rel="external"><strong>Free Font Converter</strong></a> &#8211; Converter fontes para outros formatos</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/font-face-tipografia-livre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Otimizando seu CSS</title>
		<link>http://afronteirafinal.com/otimizando-seu-css/</link>
		<comments>http://afronteirafinal.com/otimizando-seu-css/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 09:00:30 +0000</pubDate>
		<dc:creator>Leonardo Caineli</dc:creator>
				<category><![CDATA[Caineli]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[otimização]]></category>
		<category><![CDATA[semântica web]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=118</guid>
		<description><![CDATA[CSS Sprites CSS Sprites consiste em unirmos imagens em apenas um arquivo, utilizando CSS para posicioná-las e mostrá-las em seu HTML. O principal objetivo da utilização desta técnica é a economia de requisições HTTP, fazendo com que seu site ganhe performance e economize banda. Imagem Para começar, unimos todas as imagens utilizadas em apenas uma: [...]]]></description>
			<content:encoded><![CDATA[<h2>CSS Sprites</h2>
<p>CSS Sprites consiste em unirmos imagens em apenas um arquivo, utilizando CSS para posicioná-las e mostrá-las em seu HTML.</p>
<p>O principal objetivo da utilização desta técnica é a economia de requisições HTTP, fazendo com que seu site ganhe performance e economize banda.</p>
<h3>Imagem</h3>
<p>Para começar, unimos todas as imagens utilizadas em apenas uma:</p>
<p><img class="alignnone size-full" src="http://afronteirafinal.com/wp-content/uploads/2010/02/otimizando-seu-css-css-sprites-01.gif" alt="CSS Sprites" width="400" height="200" /></p>
<p><span id="more-118"></span></p>
<h3>HTML</h3>
<p>Montamos uma lista inserindo uma classe para cada “a”, desta forma conseguiremos manipular cada imagem separadamente:</p>
<pre class="brush: html">
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot; title=&quot;Aspira Soldier&quot; class=&quot;aspira_soldier&quot;&gt;Aspira Soldier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot; title=&quot;Elite Soldier&quot; class=&quot;elite_soldier&quot;&gt;Elite Soldier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot; title=&quot;Sniper Soldier&quot; class=&quot;sniper_soldier&quot;&gt;Sniper Soldier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot; title=&quot;Gas Soldier&quot; class=&quot;gas_soldier&quot;&gt;Gas Soldier&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<h3>CSS</h3>
<p>Definimos no “a” o background com a imagem e nas classes criadas manipulamos onde serão buscados os trechos desejados da imagem através da propriedade “background-position”.</p>
<p>Seguindo esta mesma linha, definimos o “a:hover” de cada classe:</p>
<pre class="brush: css">
/* CSS Reset */
*{margin:0;padding:0;border:0;outline:0;list-style:none;text-decoration:none}

/* Soldiers */
ul li{float:left}
ul li a{float:left;display:inline;margin-right:5px;border:1px solid #eee;width:100px;height:100px;text-indent:-15000px;background-image:url(soldiers.gif)}
ul li a:hover{border-color:#999}

/* Aspira Soldier */
ul li a.aspira_soldier{background-position:0 0}
ul li a.aspira_soldier:hover{background-position:0 -100px}

/* Elite Soldier */
ul li a.elite_soldier{background-position:-100px 0}
ul li a.elite_soldier:hover{background-position:-100px -100px}

/* Sniper Soldier */
ul li a.sniper_soldier{background-position:-200px 0}
ul li a.sniper_soldier:hover{background-position:-200px -100px}

/* Gas Soldier */
ul li a.gas_soldier{background-position:-300px 0}
ul li a.gas_soldier:hover{background-position:-300px -100px}
</pre>
<h3>Resultado</h3>
<p>Neste caso temos o efeito rollover, onde passando o mouse sobre cada imagem ela é trocada por outra:</p>
<p><img class="alignnone size-full" src="http://afronteirafinal.com/wp-content/uploads/2010/02/otimizando-seu-css-css-sprites-02.gif" alt="CSS Sprites" width="423" height="102" /></p>
<div style="clear: both; margin-bottom: 20px; border-bottom: 1px dotted #bbb; font-size: 0;">
<hr /></div>
<h2>Declaração única</h2>
<p>A declaração única consiste em compactar diversas propriedades com a mesma finalidade em apenas uma.</p>
<p>Aqui veremos quais são essas propriedades e como utilizar a declaração única corretamente.</p>
<h3>Margin e padding</h3>
<p>Se todos os valores forem iguais:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
margin-top: 10px;
margin-right: 10px;
margin-bottom: 10px;
margin-left: 10px;
}

/* Declaração única */
seletor{margin:10px}
</pre>
<p>Se os valores top/bottom e right/left forem iguais:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
}

/* Declaração única */
seletor{margin:10px 20px}
</pre>
<p>Se os valores right/left forem iguais:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 30px;
padding-left: 20px;
}

/* Declaração única */
seletor{padding:10px 20px 30px}
</pre>
<p>Se nenhum valor for igual:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
padding-top: 10px;
padding-right: 20px;
padding-bottom: 30px;
padding-left: 40px;
}

/* Declaração única */
seletor{padding:10px 20px 30px 40px}
</pre>
<h3>Border</h3>
<pre class="brush: css">
/* Declaração normal */
seletor {
border-width: 1px;
border-style: solid;
border-color: #666666;
}

/* Declaração única */
seletor{border:1px solid #666}
</pre>
<h3>Font</h3>
<pre class="brush: css">
/* Declaração normal */
seletor {
font-style: italic;
font-variant: small-caps;
font-weight: bold;
font-size: 12px;
line-height: 18px;
font-family: arial;
}

/* Declaração única */
seletor{font:italic small-caps bold 12px/18px arial}
</pre>
<h3>Background</h3>
<pre class="brush: css">
/* Declaração normal */
seletor {
background-color: #666666;
background-image: url(imagem.gif);
background-repeat: repeat-x;
background-position: top;
}

/* Declaração única */
seletor{background:#666 url(imagem.gif) repeat-x top}
</pre>
<h3>List-style</h3>
<pre class="brush: css">
/* Declaração normal */
seletor {
list-style-type: disc;
list-style-position: inside;
list-style-image: url(imagem.gif);
}

/* Declaração única */
seletor{list-style:disc inside url(imagem.gif)}
</pre>
<h3>Color</h3>
<p>Se todos os hexadecimais forem iguais:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
color: #666666;
}

/* Declaração única */
seletor{color:#666}
</pre>
<p>Se todos os pares de hexadecimais forem iguais:</p>
<pre class="brush: css">
/* Declaração normal */
seletor {
color: #6699cc;
}

/* Declaração única */
seletor{color:#69c}
</pre>
<h3>Importante</h3>
<p>Na declaração única os valores sempre devem seguir o sentido horário (top/right/bottom/left) e a compactação dos hexadecimais pode ser aplicada em qualquer propriedade que contenha cor (border-color, background-color, etc).</p>
<div style="clear: both; margin-bottom: 20px; border-bottom: 1px dotted #bbb; font-size: 0;">
<hr /></div>
<h2>Método otimizado</h2>
<p>Diferente da identação convencional utilizada no HTML (com TAB’s) o CSS pode utilizar um método otimizado.</p>
<h3>Exemplo utilizando a identação convencional (355 bytes):</h3>
<pre class="brush: css">
/* CSS Reset */

* {
margin: 0;
padding: 0;
border: 0;
outline: 0;
list-style: none;
text-decoration: none;
}

/* Menu */

ul li {
float: left;
}

ul li a {
float: left;
display: inline;
margin-right: 5px;
padding: 10px;
border: 1px solid #eee;
font: bold 12px arial;
color: #666;
background: #fff;
}

ul li a:hover {
border-color: #999;
}
</pre>
<h3>Exemplo utilizando o método otimizado (291 bytes):</h3>
<pre class="brush: css">
/* CSS Reset */
*{margin:0;padding:0;border:0;outline:0;list-style:none;text-decoration:none}

/* Menu */
ul li{float:left}
ul li a{float:left;display:inline;margin-right:5px;padding:10px;border:1px solid #eee;font:bold 12px arial;color:#666;background:#fff}
ul li a:hover{border-color:#999}
</pre>
<p>Lembrando que cada TAB, quebra de linha ou espaço consumirá 1 byte, devemos eliminá-los mesclando todos os seletores, propriedades e valores, removendo sempre o último “;” (ponto e vírgula) antes do fechamento da “}” (chave).</p>
<p>A idéia é termos um documento leve afim de economizar R$ por conta da diminuição do consumo de banda, porém a organização é essencial para justificar a ausência da identação, para isso, procure adotar um padrão na ordem das propriedades e identifique cada bloco utilizando comentários.</p>
<h3>Parece pouco?</h3>
<p>Vamos supor que um grande portal tenha em média 1 milhão de acessos por dia:</p>
<p>355 bytes * 1.000.000 = 355.000.000 bytes (identação convencional)<br />
291 bytes * 1.000.000 = 291.000.000 bytes (método otimizado)<br />
355.000.000 bytes &#8211; 291.000.000 bytes = 64.000.000 bytes (economia)<br />
64.000.000 bytes = 62.500 megabytes = 61 gigabytes</p>
<p>Economia de 61 gigabytes por dia para um trechinho de CSS! Ainda parece pouco?</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/otimizando-seu-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Aumente sua velocidade e qualidade de desenvolvimento com CSS Frameworks: Acredite, eles podem ajudar.</title>
		<link>http://afronteirafinal.com/aumente-sua-velocidade-e-qualidade-de-desenvolvimento-com-css-frameworks-acredite-eles-podem-ajudar/</link>
		<comments>http://afronteirafinal.com/aumente-sua-velocidade-e-qualidade-de-desenvolvimento-com-css-frameworks-acredite-eles-podem-ajudar/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 16:24:12 +0000</pubDate>
		<dc:creator>Alexander Borges</dc:creator>
				<category><![CDATA[Alex]]></category>
		<category><![CDATA[blueprint]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css framework]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[yui-grids]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=59</guid>
		<description><![CDATA[No dia-a-dia do desenvolvimento, muito se ouve falar em “frameworks” e geralmente quando essa palavra é mencionada, estamos falando de um pacote de classes, implementadas em alguma linguagem, utilizando design-patterns, tirando o máximo proveito da performance que a linguagem em questão tem a oferecer e solucionando a maioria dos problemas comuns no desenvolvimento de sistemas. [...]]]></description>
			<content:encoded><![CDATA[<p>No dia-a-dia do desenvolvimento, muito se ouve falar em “frameworks” e geralmente quando essa palavra é mencionada, estamos falando de um pacote de classes, implementadas em alguma linguagem, utilizando design-patterns, tirando o máximo proveito da performance que a linguagem em questão tem a oferecer e solucionando a maioria dos problemas comuns no desenvolvimento de sistemas. Há casos que os frameworks dão um suporte maior ainda, oferecendo melhor integração entre ambientes, soluções para infra-estrutura da aplicação e até mesmo scripts que geram algum código útil para adiantar o trabalho do desenvolvedor.</p>
<p>Talvez pelo termo “Framework” estar tão associado à idéia de facilitar o desenvolvimento “back-end” do sistema, que a primeira vista podemos encarar um “Framework CSS” como alguma coisa que vai processar folhas de estilo do lado do servidor, que vai gerar CSS dinamicamente ou algo do tipo.</p>
<p>Se você (assim como eu), também teve essa percepção sobre o assunto antes de explorá-lo, pode ter ficado com uma impressão ruim a respeito dos frameworks CSS.</p>
<p><span id="more-59"></span>Não podemos dizer que é um erro de nomenclatura. A palavra “framework” significa “estrutura” e se encaixa perfeitamente no contexto, se observarmos o propósito dos frameworks. Mas talvez a primeira impressão que a palavra deixa seja um motivo para que essas ferramentas não sejam aproveitadas e respeitadas como merecem.</p>
<p>Veremos mais adiante que apesar das inúmeras diferenças, podemos fazer várias comparações entre um framerwork css com um framework de software. Falemos um pouco então sobre o que eles são e como eles podem nos ajudar muito no desenvolvimento.</p>
<h2>O que é?</h2>
<p>É uma biblioteca compatível com padrões web, cross-browser, otimizada, com estilos CSS básicos pré-definidos que resolvem a maioria das situações comuns de desenvolvimento das interfaces web na linguagem CSS. Em suma, é um ou mais arquivos *.css válido(s), pronto(s) para uso e homologado(s) na maioria dos navegadores do mercado.</p>
<h2>Vantagens:</h2>
<p>Aqui vão alguns bons motivos para aderir ou pelo menos explorar as possibilidades dos CSS frameworks.</p>
<h3>Equipe de desenvolvimento</h3>
<p>A grande maioria dos CSS frameworks é desenvolvida pela comunidade, pelos melhores especialistas no assunto. É muito luxo você poder contar com equipes assim pra resolver problemas estruturais para o seu projeto não é? rs</p>
<h3>Cross-browser</h3>
<p>As estruturas definidas pelos CSS frameworks são testadas na maioria dos navegadores do mercado. Quem utiliza, não precisa se preocupar com o que é oferecido pelo framework, porque já houve uma equipe preocupada em testar cada detalhe em todos os navegadores.</p>
<h3>Agilidade</h3>
<p>A principal vantagem que esperamos de qualquer framework: Agilidade. No mundo da internet isso é primordial, recursos de desenvolvimento são escassos, o trabalho é grande e as mudanças são constantes. Ganhar tempo para conseguir dar o máximo de qualidade naquilo que realmente precisa se feito é extremamente necessário.</p>
<h3>Flexibilidade</h3>
<p>Na maioria dos CSS Frameworks podemos escolher configurações que se adequem ao nosso projeto, sendo assim podemos fazer a escolha mais “econômica” se tratando de consumo de banda e peso de página, e que vai nos oferecer os recursos que necessitarmos para o projeto entre esses recursos estão:</p>
<ul>
<li>. <em>Grid </em>customizado,</li>
<li>. Tipografia,</li>
<li>. <em>css-reset</em>,</li>
<li>. Folhas de estilo otimizadas por mídia (Impressão, Tela/Projetor).</li>
<li>. Suporte  para layouts fluídos</li>
<li>. Templates  com estruturas <em>SEO-friendly</em></li>
</ul>
<h3>Padrão de Código</h3>
<p>Com o tempo, os desenvolvedores vão se acostumar com o padrão estrutural das páginas e isso poderá facilitar muito o trabalho, não só do desenvolvedor como do webmaster. Mais um ganho enorme em agilidade de desenvolvimento e qualidade.</p>
<h3>Suporte / Documentação</h3>
<p>Eu ainda não conheço equipe que faça documentação da implementação de CSS, como estruturar ou utilizar cada classe, ID ou coisas assim. Utilizando um framework você e sua equipe “ganham de brinde”, na maioria dos casos, uma ótima documentação e guia de consulta.</p>
<h2>Mitos / Paranóias</h2>
<p>Talvez pra alguns seja melhor mais saber o que um CSS framework NÃO é antes mesmo de saber o que ele realmente é. Segue uma lista de falsidades sobre o assunto:</p>
<h3>- O trabalho do Webmaster se torna dispensável com os CSS frameworks.</h3>
<p>Não!!!! Assim como um framework de software, o framework não faz nada sozinho. Além do mais as decisões relacionadas a escolha de um bom framework, com a configuração ideal para o projeto também é responsabilidade do webmaster. Não há porque temerem pelos seus empregos (pelo menos não por isso <img src='http://afronteirafinal.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<h3>- O framework gera código automaticamente</h3>
<p>Também Não!!! Apesar de existirem algumas iniciativas para tornar o CSS dinâmico, processado server-side. &lt;desabafo&gt;Sou completamente avesso a essas tecnologias e ficarei assim até que me provem que realmente isso pode ser útil, e que compensa substituir um CSS bem escrito que não consome mais recursos de servidor)&lt;/desabafo&gt;, Os CSS frameworks que tem como objetivo gerar código dinamicamente.</p>
<h3>- O Webmaster vai “desaprender” como faz CSS usando framework</h3>
<p>Mais uma bobagem! Assim como um desenvolvedor não esquece como se programa quando usa um framework de software, o webmaster também não esquece como se faz HTML/CSS usando um framework. Se alguém até aqui ainda acha que não precisa mais conhecer (bem) CSS por causa de um framework, por favor, reinicie a leitura, obrigado!</p>
<h3>- CSS Frameworks são pesados</h3>
<p>Mais um engano. A grande maioria deles são bem leves e geralmente oferecem uma versão “minified”, ou seja, compactada. Você certamente teria que desenvolver “na unha” aquelas linhas de código de qualquer forma e talvez nem escreveria tão otimizado quanto.</p>
<h2>Desvantagens</h2>
<p>Como nem tudo são flores e aqui não é uma Central de Vendas de frameworks, existem sim desvantagens ao se utilizar CSS frameworks que devem ser pesadas na hora da escolha:</p>
<h3>Bugs herdados</h3>
<p>Se por um acaso a versão que você tiver utilizando tenha algum bug esse poderá ser herdado pelos seus elementos, já que como o próprio nome da tecnologia diz: são estilos em cascata.</p>
<h3>Excesso de código</h3>
<p>Como qualquer framework, nós nunca utilizamos 100% dos recursos oferecidos em nossos projetos, isso faz com que algumas linhas de código estejam perdidas sem nunca serem utilizadas. Por isso, a escolha do framework e da configuração deve ser bem pensada antes de começar o projeto.</p>
<h2>Lista de CSS frameworks</h2>
<p>Existem muitas opções de frameworks no mercado. Uma rápida pesquisa na rede trará vários deles, alguns bem completos, outros nem tanto, mas cabe á equipe optar pelo que melhor atende e explorá-lo. A dica é que não variar muito entre frameworks para que não haja confusão no padrão de nomenclaturas de classes, estruturas etc, porque no fim das contas vai exisitir uma curva de aprendizado do framework em que os usuários vão ter que se adaptar. Também não precisamos tornar um framework como &#8220;a única salvação&#8221; como se fosse uma religião ou time de futebol (Isso acontece muito quando se trata de framework de software). É preciso estar sempre atento às outras boas alternativas que existem por aí.</p>
<p>Como qualquer framework, é importante que a decisão sobre o seu uso seja bem planejada na concepção do projeto. Pode ser uma experiência arriscada migrar ou até mesmo atualizar um framework, uma vez que ja existe toda uma estrutura &#8220;pendurada&#8221; nele. Fica a dica.</p>
<p>- Blueprint &#8211; <a href="http://www.blueprintcss.org/" target="_blank">http://www.blueprintcss.org/</a></p>
<p>- YUI Grids &#8211; <a href="http://developer.yahoo.com/yui/grids/" target="_blank">http://developer.yahoo.com/yui/grids/</a></p>
<p>- YAML &#8211; <a href="http://www.yaml.de/en/" target="_blank">http://www.yaml.de/en/</a></p>
<p>- Elastic &#8211; <a href="http://elasticss.com/" target="_blank">http://elasticss.com/</a></p>
<p>- 960 Grid System &#8211; <a href="http://960.gs/" target="_blank">http://960.gs/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/aumente-sua-velocidade-e-qualidade-de-desenvolvimento-com-css-frameworks-acredite-eles-podem-ajudar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microformats</title>
		<link>http://afronteirafinal.com/microformats/</link>
		<comments>http://afronteirafinal.com/microformats/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:28:00 +0000</pubDate>
		<dc:creator>Roberto Hiroshi</dc:creator>
				<category><![CDATA[Hiro]]></category>
		<category><![CDATA[Renato]]></category>
		<category><![CDATA[Vespa]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hcalendar]]></category>
		<category><![CDATA[hcard]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[meta-dados]]></category>
		<category><![CDATA[microformat]]></category>
		<category><![CDATA[RDFa]]></category>
		<category><![CDATA[semântica web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://afronteirafinal.com/?p=47</guid>
		<description><![CDATA[Microformats é um conceito de padronização para elementos comuns existentes na maioria dos websites (como informações de contato, eventos, tags, resenhas, etc) usando nada mais que a própria sintaxe XHTML para tanto, sem scripts ou arquivos anexos. A idéia central deste conceito é gerar meta-dados a partir da própria formatação tornando os textos mais ricos [...]]]></description>
			<content:encoded><![CDATA[<p>Microformats é um conceito de padronização para elementos comuns existentes na maioria dos websites (como informações de contato, eventos, tags, resenhas, etc) usando nada mais que a própria sintaxe XHTML para tanto, sem scripts ou arquivos anexos. A idéia central deste conceito é gerar <a title="meta-dados" href="http://en.wikipedia.org/wiki/Metadata" target="_blank">meta-dados</a> a partir da própria formatação tornando os textos mais ricos em informação &#8211; sem que isso altere em nada a vida do usuário comum. Basicamente, as informações extras atribuidas são colocadas como classes CSS, na tag REL e na tag TITLE, tendo interferência praticamente nula no resultado visual. Entre muitas,  algumas vantagens dos Microformats são:</p>
<p><span id="more-47"></span></p>
<p><strong>Padronização para elementos comuns em sites</strong></p>
<p>Qual a vantagem real disso? Um desenvolvedor esperto perceberá que, usando ou criando os devidos plugins, a extração e conversão de dados para qualquer formato em uma página é muito mais fácil. Um exemplo interessante disso é o <a title="hCard" href="http://microformats.org/wiki/hCard" target="_blank">hCard</a>, que permite puxar e exportar dados cadastrais ou eventos em um formato reconhecível por qualquer gerenciador de e-mails  (seja online, seja um outlook da vida).  Num futuro pode-se até pensar em browsers que já venham com funções nativas voltadas que use este tipo de recurso, valendo-se de <a title="API" href="http://pt.wikipedia.org/wiki/API" target="_blank">API</a>s como o <a title="Google Maps" href="http://maps.google.com/" target="_blank">Google Maps</a> ou o <a title="Yahoo Maps" href="http://maps.yahoo.com/" target="_blank">Yahoo Maps</a>, por exemplo.</p>
<p>E claro, como toda padronização, ela auxilia na usabilidade,  pois facilita a vida de vários &#8220;interpretadores&#8221; (screen readers, browsers, aplicativo Air, etc) na forma de usar a informação fornecida.</p>
<p><strong>Melhora na qualidade para indexadores de busca</strong></p>
<p>Não encontramos dados do quanto de relevância os buscadores estão a dar para os microformats, embora tanto o <a title="Google" href="http://www.google.com/" target="_blank">Google</a> quanto <a title="Yahoo" href="http://www.yahoo.com/" target="_blank">Yahoo</a> já tenham anunciado suporte. De qualquer forma, o fato dos algorítimos de busca interpretarem qualquer coisa como texto (mesmo que sejam tags), já indica que os microformatos por si só são &#8220;alimentadores de relevância&#8221; por natureza.</p>
<p>Um exemplo que pode ser visto é este:  quando realizamos uma <a title="busca" href="http://www.google.com/search?q=Drooling+Dog+BarBQ" target="_blank">esta busca</a> no Google, um dos resultados apresentados (o terceiro, logo abaixo do título) já possui quantidade total de reviews a respeito do estabelecimento procurado.  Isto é possível graças ao <a href="http://microformats.org/wiki/hreview" target="_blank">hReview</a> que, como o proprio nome sugere, serve para destacar uma opinião sobre um produto, serviço ou quaquer outra coisa.</p>
<p><strong>Humanamente &#8220;entendível&#8221;</strong></p>
<p>Ao contrário de outros formatos de proposta similar, os microformats tem como conceito ser primeiro compreensível por seres humanos e somente depois por máquinas.  A sintaxe é muito mais intuitiva, mais simples de compreender e memorizar. Acredito que essa é de longe sua principal vantagem sobre o <a title="RDFa" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa</a>, por exemplo, que não só é um código mais complexo como ainda por cima possui uma série de padrões diferenciados. Outra vantagem sobre <a title="RDFa" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa</a> é que os microformatos permitem ao desenvolvedor a escrever BEM menos código, mantendo uma sintaxe simples, limpa e totalmente intelígivel para qualquer outra pessoa que mexa no código depois &#8211; mesmo que não familiarizada com estas definições (no futuro pretendemos entrar novamente no assunto <a title="RDFa" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa</a> x microformatos, agora não é o momento).</p>
<p><strong>Aplicável ao HTML 5, XHTML 2</strong></p>
<p>As próximas versões de HTML e XHTML tem, entre outras propostas, aplicar para a web do futuro o conceito de <a title="Web Semântica" href="http://en.wikipedia.org/wiki/Semantic_Web" target="_blank">Web Semântica</a> (aquela história de que toda informação deve ser um &#8216;pacote completo&#8217; de dados e referências, manja?), o que vai suprir parte da necessidades propostas pelos Microformats. Embora muita gente já esteja usando estas definições, a web ainda não está pronta para lidar com eles &#8211; Por que não usar os microformatos, que não impactarão em absolutamente nada na codificação e já são aceitos e usados? Ele não conflitará em absolutamente nada com HTML 5 ou XHTML 2 e, de lambuja, ainda ajudará os buscadores a indexar e classificar seu site de forma bastante precisa.</p>
<p><strong>Problemas com microformats</strong></p>
<p>Em 2008 a <a title="BBC" href="http://www.bbc.co.uk/" target="_blank">BBC</a> renunciou ao uso dos microformatos por conta do formato <a title="hCalendar" href="http://microformats.org/wiki/hcalendar" target="_blank">hCalendar</a>. Este formato cria um problema de acessibilidade por usar a tag <a title="abbr" href="http://www.w3schools.com/TAGS/tag_abbr.asp" target="_blank">abbr</a> como marcador e não como uma abreviação propriamente, o que confunde boa parte dos screen readers. Num contexto normal, ela seria usada assim:</p>
<pre>&lt;abbr title="Organização Mundial de Saúde"&gt;O.M.S&lt;/abbr&gt;</pre>
<p>Um screen reader habilitado para ler siglas por extenso leria este trecho como &#8220;Organização Mundial de Saúde&#8221;.</p>
<p>No caso do <a title="hCalendar" href="http://microformats.org/wiki/hcalendar" target="_blank">hCalendar</a>, a tag é usada da seguinte forma:</p>
<pre>&lt;abbr title="20070312T1700-06"&gt;March 12, 2007 at 5 PM&lt;/abbr&gt;</pre>
<p>O screen reader não leria como data,  mas sim  &#8220;Vinte milhões, sete mil e trezentos e 12 TÊ mil e setecentos traço zero seis&#8221;.  Já existe um fix para isso sugerido pela própria Microformats.org (que são os pais da criança), <a title="usar span no lugar de abbr" href="http://microformats.org/wiki/abbr-design-pattern#Accessibility_issues" target="_blank">usar span no lugar de abbr</a>.</p>
<p>Até onde testamos e pesquisamos este foi a única problema registrado. Usamos o <a title="FANGs" href="https://addons.mozilla.org/pt-BR/firefox/addon/402" target="_blank">FANGs</a> para emular a acessibilidade para deficientes visuais.</p>
<p><strong>Mas é só isso?</strong></p>
<p>Por enquanto sim. O assunto é extenso demais para ser tratado num único post &#8211; num futuro não muito distante voltaremos a ele e nos aprofundaremos em pontos mais específicos. Enquanto isso não ocorre, a lista abaixo fornece uma bela gama de coisas para brincar. Divirta-se!</p>
<p><strong>Microformatos &#8211; Referências</strong></p>
<p><a title="http://microformats.org" href="http://microformats.org" target="_blank">http://microformats.org</a> &#8211; site oficial do projeto. Todas referências, exemplos, geradores automáticos, wiki e lista de discussão estão lá.</p>
<p><a title="http://en.wikipedia.org/wiki/Microformat" href="http://en.wikipedia.org/wiki/Microformat" target="_blank">http://en.wikipedia.org/wiki/Microformat</a> &#8211; tópico na wikipédia, a informação técnica resumida.</p>
<p><a title="https://addons.mozilla.org/pt-BR/firefox/addon/4106" href="https://addons.mozilla.org/pt-BR/firefox/addon/4106" target="_blank">https://addons.mozilla.org/pt-BR/firefox/addon/4106</a> &#8211; Operator, ADD-on do firefox que detecta e importa dados de microformatos. Tem alguns problemas ainda, mas já dá uma bela visão de usos.</p>
<p><a title="https://addons.mozilla.org/pt-BR/firefox/addon/402" href="https://addons.mozilla.org/pt-BR/firefox/addon/402" target="_blank">https://addons.mozilla.org/pt-BR/firefox/addon/402</a> &#8211; FANGS: um emulador de screen reader. Infelizmente, após a atualização do Firefox para a versão 3.5 ele perde a compatibilidade. Espero que resolvam logo este problema, estava usando-o para uma pesquisa de acessibilidade.</p>
<p><a title="http://www.semanticfocus.com/blog/entry/title/microformats-vs-rdf-how-microformats-relate-to-the-semantic-web/" href="http://www.semanticfocus.com/blog/entry/title/microformats-vs-rdf-how-microformats-relate-to-the-semantic-web/" target="_blank">http://www.semanticfocus.com/blog/entry/title/microformats-vs-rdf-how-microformats-relate-to-the-semantic-web/</a> &#8211; Artigo que aprofunda-se um pouco na discussão a respeito do formato <a title="RDFa" href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa</a> vs Microformats.</p>
<p><a title="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html" href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html" target="_blank">http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html</a> &#8211; mostra a implementação feita pelo google para o formato hReview</p>
<p><a title="http://www.google.com/search?q=Drooling+Dog+BarBQ" href="http://www.google.com/search?q=Drooling+Dog+BarBQ" target="_blank">http://www.google.com/search?q=Drooling+Dog+BarBQ</a> &#8211; Link para a busca com o resultado do google.</p>
]]></content:encoded>
			<wfw:commentRss>http://afronteirafinal.com/microformats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
