Rss Feed
  1. Design responsivo

    quarta-feira, 13 de novembro de 2013

    O que é design responsivo:

    Design responsivo é o design web que se adequa a qualquer tipo de dispositivo com acesso à internet. Diferente de sites fluídos, que tem somente seu tamanho diminuído de acordo com a mídia que estamos usando para acessá-lo, os sites responsivos modificam seu layout de acordo com a resolução da tela ao qual estão sendo apresentados. Esse conceito não é recente, mas visa uma única coisa: O conteúdo legível em um site, esteja ele sendo visto através de um desktop, notebook, tablet ou smartphone.

    Um bom exemplo de site responsivo:

    Passo a passo: Como criar um layout responsivo:

    Antes de mais nada, um passo que é considerado crucial para a criação de um website decente: A ESTRUTURAÇÃO!
    Pesquise sobre o conteúdo que o seu site abordará, veja outros sites do segmento, estude seus layouts, verifique seus pontos fortes e fracos, busque saber qual a melhor forma de organizar a informação e finalmente vamos para a formação do nosso wireframe. O wireframe pode ser rabiscado, não é necessário que seja extremamente detalhado, a ideia aqui é que tenhamos uma visão de como as áreas de conteúdo ficarão distribuídas nas telas. 
    Como forma didática, começarei a mostrando um wireframe através do modelo desktop, então partirei para o tablet e posteriormente ao smartphone.

    (Obs: as imagens utilizadas abaixo não são de minha autoria <s>preguiça</s>)


    Este site é bem simples, como podemos ver teremos no <header> da página o logo e um <nav>. Abaixo uma <section> para o banner e em seguida 4 <articles> com foto e logo abaixo uma breve descrição de cada uma. Por último  temos também o <footer>.
    Uma vez tendo o desenho base em mãos, podemos partir para a modelagem no photoshop (ou em qualquer outro software de criação). 


    No monitor:
    Assim ficará o nosso site após a sua concepção, ou melhor, essa será a estrutura das informações que conterão no nosso site quando ele estiver terminado. Aqui imaginamos um monitor de desktop ou notebook de resolução 1200.

    No tablet:
    Como o tamanho do tablet é naturalmente menor (de 480px à 768px), para fazermos um site responsivo, teremos de dar uma realocada no conteúdo. O distanciamento entre os itens do menu diminui, o logo e o resto do conteúdo consequentemente também. Devemos nos atentar ao que acontece com as imagens que, antes eram 4, agora são somente 2 por bloco (dessa forma mantemos um tamanho legal para elas e isso não dificulta quando o usuário for clicar ou ler o conteúdo).

    No mobile:
    O modelo de site para mobile deve ser muito mais estreito que o de tablet, isso porque seus tamanhos podem variar de 320px à  480px. Como podem ver na imagem abaixo, o logo fica maior, como alternativa de poupar espaço o menu torna-se  dropdown, as  fotos que antes eram 2 por bloco são trocadas por uma só e suas áreas são divididas em mais de uma página (que se o usuário quiser mudar, basta passar a tela para o lado).
    Uma vez imaginando e colocando em prática como o layout do site será, é hora de começar mexer com o HTML e o CSS da coisa! 
    Tendo criado o esqueleto das seções no html e posicionando-os corretamente, é hora de passar para o 1º fator da responsividade, a dinâmica do conteúdo!

    Para que seu site saia de acordo com o planejado, existem regras que devem ser seguidas de forma bem estrita, são elas:

    1ª: Altere unidades fixas para unidades relativas.
    - Fontes que antes eram definidas como pt ou px, agora passam a ser ‘em’.
    - Alturas, larguras e imagens que antes eram em px, serão trocadas por %.

    A conversão de unidades fixas para relativas se dá pelo seguinte cálculo:
    Tamanho em = tamanho px / contexto da página
    Tamanho % = tamanho px / contexto da página

    2ª Utilize as media-queries para adequar o layout ao dispositivo utilizado pelo usuário:
    Ex:  <link rel="stylesheet" href="smartphones.css" media="screen and (max-width:480px)">

    No caso do código acima, o css será restringido ao tamanho do dispositivo. Se tiver até 480px de resolução, o estilo carregado será o “smartphones.css”.

    Assim pode ser feito para todos os 3 tipos de tela mais usados, sejam eles de desktop, tablets ou mobile. Criando apenas um CSS por layout podemos abranger bem mais dispositivos, tudo através da media query.

    3ª Faça variados testes até chegar à perfeição.

    Bom, esse foi o humilde tutorial a respeito de design responsivo.
    OBS: As imagens aqui utilizadas (dos wireframes) foram retiradas do site: tableless.com.br


  2. ACESSIBILIDADE

    quarta-feira, 23 de outubro de 2013

    Acessibilidade na web:
    Diferentemente de quando o formato de paginas web foi criado e as páginas eram compostas somente de textos e hiperlinks, hoje em dia elas são um verdadeiro acervo de conteúdos multimídia (contendo não somente textos e hiperlinks, como também imagens, vídeos, áudio e animações), felizmente o desenvolvimento de tecnologias como html, css e javascript nos permitiu essa evolução.

    O princípio primordial da W3C é:
    “Princípios: uma web de todos, para todos e em todas as coisas.”

    Partindo desse pressuposto, iniciamos aqui o nosso assunto: Acessibilidade na web!
    O termo “acessibilidade web” refere-se à prática de projetar um website utilizando corretamente as semânticas HTML, de forma que mesmo pessoas com limitações físicas (cegos, daltônicos ou com baixa visão, dificuldades motoras e surdas, por exemplo) possam navegar e ter acesso às suas informações sem complicações.

    Quando criamos uma página de conteúdo, é crucial que facilitemos ao máximo o compreendimento do seu conteúdo por parte do nosso navegante, nesse caso devemos deixar claro o que é uma citação, uma abreviação (com significado), uma palavra de outra nacionalidade, fonte ajustável (para míopes), fazer um adequado contraste de cores, criar um mapa de navegabilidade e etc. Mais uma vez enfatizo que qualquer um deve ter acesso às informações independente de condição física, internet ou navegador.

    Utilizar a semântica HTML é saber usar corretamente as tags html, dando o verdadeiro sentido para sua existência, que é o de conceber um site que seja acessível à todos os públicos, sem restrição! Por este motivo, com a implementação do HTML5, tivemos mudanças muito boas em relação à estruturação de sites. Áreas específicas receberam  tags específicas (header, nav, footer, section e aside, por exemplo), essas tags que agora substituem as divs, dão uma real significância para a área que vão ocupar.
    Um site acessível deve facilitar a navegação e nunca dificulta-la, aplica-se aí a arquitetura da informação, layout do site, formatação do texto, cores, formas e o próprio conteúdo.

    Sabemos se um site é ou não acessível através de êxito nos seguintes testes:

    - Navegar sem mouse;
    - Navegar sem ver imagens;
    - Navegar sem áudio (se tiver muito conteúdo multimídia);
    - Navegar com monitor desligado (através de sintetizador de voz);

    Abaixo alguns conceitos de correta utilização de algumas tags para determinados elementos que compõe um site.

    Imagens acessíveis:
    Imagens são elementos muito importantes, não só em websites como em vários outros veículos de comunicação. Sua função é demonstrar de forma visual o que está sendo dito (tanto em jornais, revistas, livros e etc), isso facilita muito o entendimento do leitor.

    Por motivos diversos (velocidade da internet, link inválido ou limitação visual do internauta), ele pode não enxergar a imagem inserida no texto e um fator como esse deve jamais, JAMAIS possibilitar que a informação seja comprometida.
    Para evitar esses tipos de transtornos, temos atributos semânticos que tornam a falta de imagem pouco significativa para o contexto geral da página. Esses atributos são:

    alt: o atributo alt gera um texto alternativo para a imagem caso ela não seja carregada, dessa forma o navegante pode saber do que se trata.

    title: já o atributo title dá um título para essa imagem, quando passamos o mouse por cima esse conteúdo é apresentado. Ideal para pequenas descrições, além de ser lido por sintetizadores de voz.

    Formulários acessíveis:
    Os formulários têm como principal função estreitar o canal entre o desenvolvedor e o usuário. Como as páginas web são grandes disseminadoras de informação, é importante que o navegante tenha fácil acesso à elas e também possa, por exemplo, opinar à respeito do conteúdo disponibilizado, dar sugestões, reclamar, se cadastrar, fazer pesquisa sobre o público, manter contato e por aí vai.

    Como os formulários podem ter todas essas funcionalidades é crucial que sejam extremamente acessíveis.
    Um formulário acessível deve poder ser preenchido por qualquer pessoa, tenha ela ou não alguma necessidade especial, esteja ela em um pc desktop, smartphone ou tablet.

    Os princípios de acessibilidade em formulários são:

    tabindex: importante no site inteiro, pois nem sempre o usuário dispõe de um mouse para navegar entre os links.

    labels: extremamente importantes, principalmente para aqueles que dependem de um sintetizador de voz para fazer a navegação (geralmente pessoas cegas ou baixa visão);

    placehover: que insere um pré-preenchimento dentro de um campo, importante para exemplificar o tipo de conteúdo aceito ali, um bom exemplo são as máscaras de entrada de n° de telefone ou informações adicionais que facilitem o preenchimento do campo, como o (somente números) de campos de CEP.

    Input types: Agora com campos semânticos novos e bem sugestivos: color, range, number, date, email e tel

    Autofocus: Deixa determinado campo em foco, geralmente quando este não foi preenchido ou foi preenchido de forma incorreta. O foco é importante para chamar a atenção do usuário.
    Descrição de campos: botãozinho de ‘?’ com uma descrição do que o campo pede.

    Acessibilidade e a utilização de fontes:
    Com relação à utilização de fontes, devemos levar em consideração alguns fatores antes de adicionar os textos:

    - Tamanho: Lembrando que o nosso usuário pode ou não ter uma baixa visão, devemos deixar mais opções de tamanho de fontes para ele, pois dependendo do tamanho ele pode não conseguir ler e consequentemente sair do seu site. A boa prática é dar mais de uma opção de tamanho e deixar a critério do usuário escolher a que melhor se adapte aos seus olhos.

    - Alinhamento: Outro fator que pode contribuir ou terminar de avacalhar com a leitura do seu usuário é o alinhamento do texto. O ideal é que o mesmo fique sempre alinhado à esquerda (salvo algumas exceções), dessa forma os olhos do leitor não se perdem em meio aos espaços entre cada palavra. Uma coisa interessante é que o texto justificado, embora ‘bonitinho’ e bem alinhado, perde no quesito acessibilidade, justamente por ter espaços variáveis, que muitas vezes nos fazem ‘perder o rumo’ do texto (literalmente).

    - Disponibilidade: Tenhamos em mente que o usuário precisa ter a família de fontes que você utilizar no site, instalado em seu pc, para que dessa maneira consiga enxergar o layout na sua mais perfeita forma. Hoje em dia também temos a opção de deixar a fonte usada na nuvem, assim, caso o user não tenha a fonte, ela é automaticamente baixada, instalada e renderizada pelo navegador (isso é muito, muito bom! =D)

    Acessibilidade e a utilização de cores:
    Pessoas daltônicas tendem a não enxergar ou enxergar parcialmente determinados tons de coloração, é importante um estudo sobre isso antes de escolher as cores do seu site, pois o ideal é que se tenha uma segunda folha de estilos com cores diferentes, que possam ser facilmente assimiladas por essas pessoas.


    Ex: Um site que trabalhe muito com tons de laranja, vermelho ou amarelo, existem daltônicos que enxergam essas cores de forma amarelada ou esverdeada, então, dependendo da tonalidade do link ou da fonte, essa pessoa pode não enxergar (isso se aplica também à imagens), então uma segunda opção de cores é crucial.









  3. Taquigrafia CSS

    quarta-feira, 2 de outubro de 2013

    A taquigrafia é um método que permite abreviar a escrita, tem como principal objetivo a facilidade e melhoria da velocidade da digitação.
    Bastante utilizada e de grande importância na implementação do CSS, com a adaptação de conceitos taquigráficos, tornamos nossos códigos mais limpos e com menos linhas, dessa forma sua manutenção se dá de maneira mais simples e direta.
    Como visto no post sobre Propriedades CSS, cada propriedade pode ter diversos valores.
    Evitando sempre a redundância no código, repeti-las é considerado um crime hediondo, devemos sempre nos lembrar de que um verdadeiro desenvolvedor utiliza os códigos com sabedoria, então pra que repetir algo que já está lá?! Abaixo as técnicas de abreviação.

    Técnicas abreviadas para fundo:


    Resultado:

    Técnicas abreviadas para propriedade de fronteira:
    São denominadas propriedades de fronteira, todas as propriedades que nos permitem separar áreas de conteúdos para reorganizá-los de alguma forma no layout. São elas:
    - Border;
    - Margin;
    - Padding.
    Obs: alguns consideram propriedades de fronteira somente as bordas, deixando as margens internas e externas fora dessa categoria.
    Essas propriedades tem um aspecto em comum, que são seus quatro lados (top, right, bottom e left), portanto seus parâmetros devem ser especificados para eles.
    Bordas:
    Servem para delimitar espaços, organizar áreas e facilitar sua manipulação.

    Técnicas abreviadas para bordas:

    Resultado:

    Margens:
    Importante ressaltar sobre as margens e paddings: Quando usamos taquigrafia, as definições serão aplicadas iniciando do topo e seguindo sempre no sentido anti-horário (top, right, bottom, left), então, quando formos adicioná-las devemos prestar atenção nessa ordem. Quando as margens tiverem a o mesmo espaçamento, não é necessário colocar mais de uma vez.

    Técnicas abreviadas para margens:


    Resultado:

    Paddings

    Técnicas abreviadas para o padding:

    Resultado:

    Fontes
    As fontes também podem ter todas as suas propriedades definidas através de uma única declaração. Sabemos que de um modo geral, seus atributos são: size, weight, Family, style e variant.
    Sintetizar essas declarações é bastante simples, usamos a tag “font” e depois dela adicionamos todos os seus atributos, todavia, se tratando de fontes devemos nos atentar à ordem dos atributos, pois ela é importante para o funcionamento do código.

    Técnicas abreviadas para fontes:


    Resultado:


    Cores:
    Quando mexemos com CSS, a opção mais abrangente de identificação de cores que podemos ter são os valores hexadecimais. Esses valores são definidos por 6 caracteres, que vão de 0 à F.
    As cores só podem ser taquigrafadas caso seus valores sejam repetidos nas mesmas posições (FF0044) ou forem todos iguais (CCCCCC).
    A regra é simples, onde aparecem 2 letras / números iguais, substituímos por um só.

    Técnicas abreviadas para cores:

    Resultado:


  4. SELETORES CSS

    terça-feira, 10 de setembro de 2013


    Os seletores CSS nos permitem formatar determinadas partes do nosso código HTML de forma simples e abrangente. Dessa maneira, podemos especificar o que e quando queremos que determinada regra seja aplicada na nossa página. Isso gera uma codificação mais semântica e, sendo utilizada da forma correta, com zero redundância (o que é a nossa meta sempre).


      Seletor universal: Seleciona qualquer elemento.
    Padrão
    Significado
    Exemplo CSS
    *
    Seletor universal, seleciona qualquer elemento, sem distinção.
    *{
      Color: #000000;
    }


    Exemplo de utilização:
    CSS:
     HTML:

    RENDERIZADO NO NAVEGADOR:



      Seletor de tipo de elemento: Seleciona qualquer tipo de elemento.
    Obs: O “e” utilizado na tabela abaixo não é um elemento, ele apenas indica um elemento qualquer. Nos exemplos o trocarei por um <a> ou <p>, por exemplo.
    Padrão
    Significado
    Exemplo CSS
    e
    Seletor do tipo elemento: seleciona qualquer elemento <e>
    e{
      color: #000000;
    }

    Exemplo de utilização:

    CSS:
    HTML:

    RENDERIZADO NO NAVEGADOR:

      Seletor contextual: Seleciona qualquer elemento <f> (secundário) que estiver contido num elemento <e> (primário).
    Obs: As letras “e” e “f” utilizadas na tabela abaixo não são  elementos, elas são apenas ilustrativas. Nos exemplos o trocarei por um <a> ou <p>, por exemplo.
    Padrão
    Significado
    Exemplo CSS
    e f
    Seletor contextual: seleciona qualquer elemento <f> que estiver contido num elemento <e>
    h1 em{
      color: blue;
    }

    Exemplo de utilização:
    CSS:

    HTML:

    RENDERIZADO NO NAVEGADOR:


    Seletor de elementos-filho: Seleciona qualquer elemento <f> descendente direto de um elemento <e>. Ou seja, se o elemento <f> ou o <e> estiverem isolados, ou estiverem indiretamente ligados, a formatação não lhes será aplicada.
    Padrão
    Significado
    Exemplo CSS
    e > f
    Seletor de elementos-filho: Seleciona qualquer elemento <f> (secundário) descendente direto de um elemento <e> (primário).
    body > p{
      line-height:1.3;
    }

    Exemplo de utilização:
    CSS:
     HTML:

    RENDERIZADO NO NAVEGADOR:


      Seletor adjacente: Seleciona qualquer tipo de elemento que esteja imediatamente após um elemento.

    Padrão
    Significado
    Exemplo CSS
    e + f
    Seletor adjacente: seleciona o elemento <f> que estiver imediatamente após um elemento <e>.
    h1 + h2{
      margin-top:-5mm;
    }

    Exemplo de utilização:
    CSS:
    HTML:

    RENDERIZADO NO NAVEGADOR:

    Seletor de classe: A classe só será aplicada ao elemento que está relacionado a ela no CSS, tão e somente isso. Se no HTML a classe for aplicada a algum outro elemento, não haverá alteração alguma na formatação.
    Padrão
    Significado
    Exemplo CSS
    e.classe
    Seletor de classe: Seleciona o(s) elemento(s) <e> em que se aplicou a “classe”.
    h1.pastoral{
      color:green;
    }

    Exemplo de utilização:
    CSS:

    HTML:

    RENDERIZADO NO NAVEGADOR:


      Seletor de ID: Geralmente utilizado quando se deseja aplicar mais de um estilo para o mesmo elemento. Com o ID para diferenciá-los, não há conflito de regras e as instruções podem ser renderizadas pelo navegador.
    Padrão
    Significado
    Exemplo CSS
    e#id
    Seletor de classe: Seleciona o(s) elemento(s) <e> identificado com um ID.
    h1#chapter1{
      text-align:center;
    }

    Exemplo de utilização:
    CSS:

    HTML:

    RENDERIZADO NO NAVEGADOR:

    Agrupamento de seletores: O princípio básico do agrupamento de seletores é simplesmente aplicar o mesmo estilo a seletores diferentes, sem ter de repeti-los para adicionar as mesmas regras. Isso evita a redundância de informações e gera um código íntegro e integral.
    Padrão
    Significado
    Exemplo CSS
    e,f
    Agrupamento de seletores: Selecione os elementos <e> e <f> do agrupamento.
    h1, h2{
      font-family:sans-serif;
    }

    Exemplo de utilização:
    CSS:

    HTML:

    RENDERIZADO NO NAVEGADOR:


    Seletores de atributos:
      Um seletor de atributo seleciona os atributos de algum elemento específico. Para que essa seleção aconteça, os elementos devem estar atribuídos ao seletor no próprio CSS, caso contrário, não haverá a estilização da determinada parte do código.
    Padrão
    Significado
    Exemplo CSS
    e [atrib]
    Seletor de atributo: Seleciona o elemento <e> que contenha o atributo indicado.
    h1[title]{
      color:blue;
    }

    Exemplo de utilização:
    CSS: 

    HTML:

    RENDERIZADO NO NAVEGADOR:

    Padrão
    Significado
    Exemplo CSS
    e [atrib=”valor”]
    Seletor de atributo: seleciona o elemento <e> com o mesmo atributo e “valor”
    span [class=exemplo]{
      color:blue;
    }

    Exemplo de utilização:
    CSS:

    HTML:

    RENDERIZADO NO NAVEGADOR:


    Padrão
    Significado
    Exemplo CSS
    e [atrib~=”valor”]
    Seletor de atributo: seleciona o elemento <e> em que “valor” de atributo esteja em uma lista de valores separados por espaços.
    a[rel~=”copyright”]{
      color:red;
    }

    Exemplo de utilização:
    CSS:


    HTML:


    RENDERIZADO NO NAVEGADOR:



    Padrão
    Significado
    Exemplo CSS
    e [atrib|=”valor”]
    Seletor de atributo: seleciona o elemento <e> em que “valor” do atributo seja idêntico a “valor” ou inicia-se com “valor”.
    *[lang”=”pt”]{
     color:red;
    }
                                                                                                                                                                
    Exemplo de utilização:

    CSS:

     HTML:

    RENDERIZADO NO NAVEGADOR:


    PSEUDO CLASSES:
    As pseudo-classes tem como função a adição de diferentes efeitos aos seletores.
    São separadas em dois tipos:
    1) Pseudo-classes dinâmicas: Elas controlam o estado dos elementos;
    2) Pseudo-classes estruturais: Selecionam algum elemento dentro da estrutura do código.

    PSEUDO-CLASSES DINÂMICAS:
    Padrão
    Significado
    Exemplo CSS
    a:link
    Pseudo-classe link: Aplica-se ao elemento <a> com hiperlinks ou âncoras ainda não visitados.
    a:link{
    color:green;
    }
    a:visited
    Pseudo-classe visited: Ao contrário do 1º, aplica-se somente aos links já visitados.
    a:visited{
    color:blue;
    }
    e:active
    Pseudo-classe active: Aplica-se ao elemento <e> quando esse for ativado pelo usuário.
    a:active{
    color:red;
    }
    e:hover
    Pseudo-classe hover: Aplica-se ao elemento <e> quando o cursor estiver sobre ele, mas sem ativá-lo.
    a:hover{
    background-color:yellow;
    }

    CSS:                                      

    HTML:

    /*Aplicando sub-classes aos links:*/

    a:link{ color:#91E600; /*Cor do link.*/ }
    a:visited{ color:#CC0066; /*Cor do link visitado.*/ }
    a:active{ color:#fff; /*Cor do link ativo (quando se mantém pressionado).*/ }
               
    a:hover{ background-color:#FFCC99; /*Cor de fundo do link ao se passar o mouse em cima.*/ }


    Padrão
    Significado
    Exemplo CSS
    e:focus
    Pseudo-classe focus: Aplica-se ao elemento <e> quando o foco estiver posicionado nele.
    a:focus{
    background:yellow;
    }
    e:lang(val)
    Pseudo-classe lang: Aplica-se ao elemento <e> se este estiver marcado com o idiota “val”.
    html:lang(pt) {
    Quotes: ‘< ‘ ‘ >’;
    }

    Abaixo terá um exemplo de como usar ambas as pseudo-classes mostradas acima.
    O “focus”, deixará em foco os campos input do formulário. Notório o fato de que o campo de mensagem ao ser focado, não ficará na cor avermelhada. Motivo: Se trata de uma textarea e não de um input propriamente dito.
    Para cada uma das linguagens (pt-br ou en), adicionei uma formatação CSS. Sempre que essas classes de linguagem estiverem dentro de um form, a formatação não será a mesma para ambas.

    Exemplo de utilização:
    CSS:
    HTML:


    RENDERIZADO NO NAVEGADOR:
    PSEUDO ELEMENTOS:
    Padrão
    Significado
    Exemplo CSS
    e:first-line
    Pseudo-elemento first-line: Aplica-se à primeira linha do elemento <e>.
    p:first-line{
    text-transform: uppercase;}
    e:first-letter
    Pseudo-elemento first-letter: Aplica-se à primeira letra do elemento <e>.
    p:first-letter{
    Font-size: 3em; font-weight:notmal;
    }
    e:before
    Pseudo-elemento before: Aplica conteúdo especificado em posição anterior ao elemento <e>.
    e:before{
    content:open-quote;
    }
    e:after
    Pseudo-elemento after: Aplica conteúdo especificado em posição posterior ao elemento <e>.
    e:after{
    content:open-quote;
    }

    Exemplo de utilização:
    CSS:
    HTML:

    RENDERIZADO NO NAVEGADOR: