Botões sem imagem do Google


90

Recentemente, publicamos alguns artigos sobre os novos botões sem imagem do Google:

Eu realmente gosto de como esses novos botões funcionam no Gmail. Como posso usar esses botões ou outros semelhantes em meu site? Há algum projeto de código aberto com aparência e comportamento semelhantes?

Se eu quisesse lançar meu próprio pacote de botões como este usando JQuery / XHTML / CSS, quais elementos eu poderia usar? Meus pensamentos iniciais são:

  1. Padrão <input type="button">com css para melhorar a aparência (o artigo de design falava principalmente sobre os envolvimentos de css / imges).

  2. Jquery javascript para abrir uma caixa de diálogo personalizada com raiz no botão no evento "onclick" que teria <a>tags e uma barra de pesquisa para filtragem? Um layout de tabela para esse pop-up seria lógico?

Eu sou péssimo em coisas de engenharia reversa na web. Quais são algumas das ferramentas que eu poderia usar para ajudar na engenharia reversa desses botões? Usando a barra de ferramentas para desenvolvedores web do Firefox, não consigo ver o css ou javascript (mesmo que esteja reduzido) que é usado nas caixas de diálogo pop-up dos botões. Que ferramenta de navegador ou outro método eu poderia usar para espiá-los e obter algumas ideias?

Não estou procurando roubar nenhum IP do Google, apenas tenho uma ideia de como eu poderia criar uma funcionalidade de botão semelhante.

Respostas:


55

- EDITAR - Não vi o link na postagem original. Desculpe! Tentaremos reescrever para refletir a questão real

StopDesign tem um excelente post sobre isso aqui . [editar 20091107] Eles foram lançados como parte da biblioteca de encerramento : veja a demonstração do botão .

Basicamente, os botões personalizados que ele mostra são criados usando um pedaço simples de CSS.

Ele originalmente usou 9 tabelas para obter o efeito: 9 mesas

Mais tarde, porém, ele usou uma margem esquerda e direita simples de 1px nas bordas superior e inferior para obter o mesmo efeito.

O gradiente é falsificado usando três camadas: Gradiente do botão

Todo o código pode ser encontrado na página Custom Buttons 3.1 . (embora o gradiente sem a imagem só funcione no Firefox e Safari)

Instruções passo a passo

1 - Insira o seguinte CSS:

/* Start custom button CSS here
---------------------------------------- */
.btn {
  display:inline-block;
  background:none;
  margin:0;
  padding:3px 0;
  border-width:0;
  overflow:visible;
  font:100%/1.2 Arial,Sans-serif;
  text-decoration:none;
  color:#333;
  }
* html button.btn {
  padding-bottom:1px;
  }
/* Immediately below is a temporary hack to serve the 
   following margin values only to Gecko browsers
   Gecko browsers add an extra 3px of left/right 
   padding to button elements which can't be overriden.
   Thus, we use -3px of left/right margin to overcome this. */
html:not([lang*=""]) button.btn {
  margin:0 -3px;
  }
.btn span {
  background:#f9f9f9;
  z-index:1;
  margin:0;
  padding:3px 0;
  border-left:1px solid #ccc;
  border-right:1px solid #bbb;
  }
* html .btn span {
  padding-top:0;
  }
.btn span span {
  background:none;
  position:relative;
  padding:3px .4em;
  border-width:0;
  border-top:1px solid #ccc;
  border-bottom:1px solid #bbb;
  }
.btn b {
  background:#e3e3e3;
  position:absolute;
  z-index:2;
  bottom:0;
  left:0;
  width:100%;
  overflow:hidden;
  height:40%;
  border-top:3px solid #eee;
  }
* html .btn b {
  top:1px;
  }
.btn u {
  text-decoration:none;
  position:relative;
  z-index:3;
  }

/* pill classes only needed if using pill style buttons ( LEFT | CENTER | RIGHT ) */
button.pill-l span {
  border-right-width:0;
  }
button.pill-l span span {
  border-right:1px solid #ccc;
  }
button.pill-c span {
  border-right-style:none;
  border-left-color:#fff;
  }
button.pill-c span span {
  border-right:1px solid #ccc;
  }
button.pill-r span {
  border-left-color:#fff;
  }

/* only needed if implementing separate hover state for buttons */
.btn:hover span, .btn:hover span span {
  cursor:pointer;
  border-color:#9cf !important;
  color:#000;
  }

/* use if one button should be the 'primary' button */
.primary {
  font-weight:bold;
  color:#000;
  }

2 - Use uma das seguintes formas de chamá-lo (mais podem ser encontradas nos links acima)

<a href="#" class="btn"><span><span><b>&nbsp;</b><u>button</u></span></span></a>

ou

<button type="button" class="btn"><span><span><b>&nbsp;</b><u>button</u></span></span></button>

32

Este é o botão "Arquivo" deles, de acordo com Firebug.

<div tabindex="0" act="7" class="goog-imageless-button goog-inline-block goog-imageless-button goog-imageless-button-collapse-right goog-imageless-button-primary" id="">
  <div class="goog-inline-block goog-imageless-button-outer-box">
    <div class="goog-inline-block goog-imageless-button-inner-box">
      <div class="goog-imageless-button-pos">
        <div class="goog-imageless-button-top-shadow"> </div>
        <div class="goog-imageless-button-content"><b>Archive</b></div>
      </div>
    </div>
  </div>
</div>

O CSS é mais do que eu quero organizar / colar para isso. Talvez seja só eu, mas quando a marcação / css ficar tão pesada, acho que prefiro USAR UMA IMAGEM (ou algumas imagens como plano de fundo. Melhor ainda, Sprites). Além disso, uma imagem para este botão seria inferior a um único K.

Por mais que eu ame o Google, isso parece um pouco exagero.


Atualização: o Google é um caso único. Se você tem um site enorme e deseja internacionalizar seu conteúdo, essa técnica sem imagens é realmente muito boa. Ele permite que você aplique praticamente qualquer linguagem escrita à sua IU, sem a necessidade de gerar novas imagens ou o medo de quebrar seus botões.

Veja a pergunta: Quais são as vantagens de usar um botão sem imagem?


13

Independentemente de como você decidir fazê-lo, certifique-se primeiro de renderizar a página com o padrão:

<input type="submit" value="submit" />

... E então use jQuery para trocar o elemento de entrada com seu botão personalizado que possui um evento onClick. Isso garantirá que as pessoas sem JavaScript habilitado ainda possam usar o seu site.

A usabilidade deve estar em primeiro lugar!


5
Por quê? Em <button type="submit">vez disso, use um , pois ele pode ter elementos filho e ser estilizado como você quiser.
ausência de pálpebras

13

Você pode usar este plugin jquery que desenvolvi. Os botões funcionam praticamente em qualquer lugar e, por serem um plugin, são fáceis de instalar e configurar.

http://swizec.com/code/styledButton/


12

Atualizando este post para 2011: o

Google lançou um novo design em seus serviços em julho de 2011. Os novos botões do Google foram recriados aqui: http://pixify.com/blog/use-google-plus-to-improve-your-ui /

Os novos botões têm a seguinte aparência: insira a descrição da imagem aqui


+1. Em vez de tentar falsificar gradientes usando imagens ou elementos adicionais como esta resposta post atual, use gradientes sempre que possível e volte para uma cor razoável em navegadores mais antigos.
mikemaccana


5

O maior problema que você terá será fazer com que funcione em todos os navegadores.

Eu acho que você deve considerar seriamente se você realmente precisa disso ... O Google obtém muito retorno do investimento fazendo algo assim por causa do grande número de botões e linguagens de que precisam; Suspeito que a maioria dos sites e aplicativos ficaria tão bem usando uma imagem.

Porém, um componente de código aberto é uma boa ideia: espalhe a riqueza e o esforço amplamente.


2

A maior parte do trabalho aqui provavelmente não será o design - esses posts já são um excelente tutorial sobre os efeitos de gradiente.

O problema é fazer com que isso funcione em todos os navegadores ou, mais especificamente, nas estranhas pilhas de lixo que são o IE6 e o ​​IE7.

Acho que você está no caminho certo com um botão padrão que é reescrito com jQuery - dessa forma, você ainda estará acessível para leitores de tela e pode degradar bem em navegadores realmente antigos.

Para o HTML, acho que sua melhor aposta é visitar o Gmail com cada navegador e ver o que o HTML é produzido - eu esperava que fosse completamente diferente para o IE6, IE7 (também dependendo se eles precisam do modo quirks) e tudo mais .


1
Sinceramente, duvido que o Google esteja detectando o IE para renderização de botões.
ausência de pálpebras


1

A barra de ferramentas do desenvolvedor da Web tem informações de estilo de exibição no menu css que informará qual css é aplicado a um item. Há também o recurso Editar CSS nesse menu, que permitirá que você altere o CSS rapidamente para ver como ele afeta a página.


Acho o firebug extremamente útil exatamente para esse tipo de coisa - ver o que o CSS é aplicado e as mudanças ativas.
Thelema de

Eu uso o firebug também, mas como ele tem seu próprio motor, pode ser um pouco pesado. A barra de ferramentas é muito mais leve e fácil de usar, na minha opinião.
Mykroft de

0

A postagem com um link para a biblioteca de encerramento não se aplica. O que foi lançado como parte da biblioteca de encerramento usa botões com gradientes .

As outras soluções listadas são inúteis. Você não pode ir de lá e fazer com que esses botões funcionem em todos os navegadores do Gmail. O que Bowman mostra em seu site não é um código funcional.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.