2 de junho de 2010

Desenhe um incrível CSS Poster usando o Google Font API


Neste tutorial ensinarei como criar um CSS Poster utilizando as fontes disponibilizadas pelo Google Font API e um pouco de CSS3. A idéia principal deste tutorial é de explorar de forma criativa o novo recurso da Google, além de provar a enorme aplicabilidade, beleza e importância que a tipografia possui no web design.

Veja o que iremos criar:



OBS: Esta página foi testada nas versões mais atuais dos seguintes navegadores: Google Chrome, Safari e Firefox. Obviamente não irá funcionar corretamente em nenhuma versão do Internet Explorer e pode apresentar algumas poucas falhas no Opera.

1.Estrutura XHTML

Cada trecho de texto possui uma fonte e configuração distintas, por isso trataremos individualmente de cada um através de classes específicas.

Adicione ao cabeçalho do documento os códigos das fontes que serão utilizadas, pegue-os no Google Font Directory. Serão elas:


Cantarell
Lobster
Yanone Kaffeesatz
Reenie Beanie


As fontes Cantarell e Yanone Kaffeesatz, ficarão em o negrito portanto você terá que pegar o código oferecido pelo Developers Guide.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<title>Google Font API CSS Poster</title>
    
<link href="style.css" rel="stylesheet" type="text/css" />  
<link href='http://fonts.googleapis.com/css?family=Cantarell:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'/>
<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'/>
<link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:200,300,400,700' rel='stylesheet' type='text/css'/>
<link href='http://fonts.googleapis.com/css?family=Reenie+Beanie' rel='stylesheet' type='text/css'/>

</head>

<body>

<div id="content">
<div id="main-poster">
<div id="logo-bg">
<div id="logo-bg2">
<span class="logo"><a href="http://www.be-insight.com">Insight</a></span>
<span class="presents">presents</span>
</div>
</div>

<div class="description">A Google Font API concert</div>
<span class="city-and-colour">CITY AND COLOUR</span>
<div class="tegan-and-sarah">Tegan and Sarah</div>
<div id="image-poster">
<img src="img/poster-img.jpg" /></div>
<div class="details">
06/23/10   .   Chicago, IL   .   Great Kitchen   .  All ages   .   Free
</div>


</div>
</div>

</body>

O resultado será esse:


2. Folha de Estilo / CSS

2.1. body e content

Utilizei um pattern de madeira como imagem de fundo para o body e adicionei algumas configurações padrões. Delimitei a largura (width) do content em 500px e ajustei sua margem e espaçamento, para que o conteúdo se apresente sempre centralizado.

body {
  background-color:#fff; 
  background-image: url(img/pattern.jpg);
  background-repeat:repeat;
  background-position:center;
  margin:0 auto;
  color:#363636;
  font:x-small Georgia Serif;
  font-size/* */:/**/small;
  font-size: /**/small;
  text-align: center;
}

#content{
  margin:0 auto;
  padding: 0 auto;
  width:500px;
}

2.2. main-poster

Além de uma cor chapada, fiz o uso de uma textura de papel, editada no Photoshop CS5. A textura utilizada pode ser encontrada neste link. Fiz uso do box-shadow para dar a impressão de que o pôster está colado na parede.

#main-poster{
  width:500px;
  background: #c7b299 url(img/poster-bg.jpg) no-repeat top;
  padding:20px;
  margin: 30px 0 30px 0;
  -webkit-box-shadow: 0px 4px 8px #000;
  -moz-box-shadow: 0px 4px 8px #000;
}

2.3. logo

Usei o border-radius com um valor exagerado a fim de criar círculos ao invés de quadrados (padrão) e cores RGB com transparência para o preenchimento.

#logo-bg{
  background: rgba(0, 0, 0, 0.2);
  padding:5px;
  margin:0px;
  width:93px;
  height:93px;
  -webkit-border-radius:100px;
  -moz-border-radius:100px;
}

#logo-bg2{
  background:rgba(0, 0, 0, 0.2);
  padding:5px;
  margin:3px;
  width:78px;
  height:78px;
  -webkit-border-radius:80px;
  -moz-border-radius:80px;
}

Tratei as palavras Insight e presentes separadamente, centralizando-as.

.logo a{
  font-family:'Lobster', arial, serif;
  text-decoration:none;
  position:relative;
  top:20px;
  font-size:23px;
  color:#fff;
  padding:0 auto;
  margin:0 auto;
}

.presents{
  font-family:'Cantarell', arial, serif;
  position:relative;
  top:15px; 
  left:13px;
  font-size:10px;
  color:#fff;
  padding:0 auto;
  margin:0 auto;
}

2.4. Descrição – A Google Font API Concert

.description{
  font-family:'Cantarell', arial, serif;
  font-weight:bold;
  font-size:15px;
  margin:20px 0 0;
  padding:5px 0;
  width:100%;
  border-top:5px solid #363636;
  border-bottom:5px solid #363636;
  color:#363636;
}

2.5. Atração principal – city-and-colour

Usei um valor alto para o tamanho da fonte (fazendo esse trecho ocupar a largura total do main-poster) e utilizei diversos text-shadows para criar um efeito de profundidade em 2D.

.city-and-colour{
  font-family: 'Yanone Kaffeesatz', arial, serif;
  font-weight:bold;
  font-size:100px;
  padding:0 auto;
  margin: 0 auto;
  text-shadow: 1px 1px #c7b299, 2px 2px #c7b299, 3px 3px #c7b299, 4px 4px 1px #ac977f, 5px 5px 1px #ac977f;
}

2.6. Abertura – Tegan and Sarah

Tratei este trecho criando uma div para poder controlar melhor suas dimensões. Fiz uso do recurso transform para inclinar o elemento.

.tegan-and-sarah{
  font-family: 'Reenie Beanie', arial, serif;
  font-size:30px;
  position:relative;
  top:-25px;
  left:295px;
  color:#fff;
  background:#de6540;
  margin:0px;
  padding:2px;
  width:202px;
  height:36px;
  -webkit-box-shadow: 0px 2px 6px #313131;
  -moz-box-shadow: 0px 2px 6px #313131;
  -webkit-transform: rotate(-5deg);
  -moz-transform: rotate(-5deg);
}

2.7. Imagem / Ilustração

#image-poster img{
  border:5px solid #363636;
  width:490px;
  height:392px;
  padding:0 auto;
  margin:-40px 0 0 0;
}

2.8. Detalhes adicionais

Todo show tem data, hora e local para acontecer. Fiz uso de uma margem superior negativa para “colar” esse elemento à ilustração.

.details{
  font-family:'Cantarell', arial, serif;
  font-weight:bold;
  font-size:17px;
  color:#c7b299;
  background:#363636;
  width:100%;
  padding:0 0 7px 0;
  margin:-5px 0 0 0;
}

Esperamos que tenha gostado do resultado e que de alguma forma este tutorial possa te ajudar na exploração deste novo e excelente recurso que a Google está disponibilizando gratuitamente.

Mais informações sobre o Google Font API:



João Alvarenga

He was born in early 85, currently lives in Brazil. An ordinary man with simple dreams. He is also the founder of Insight. You can find out more about him on the links below:

Twitter Trackbacks