Galera, bateu uma dúvida aqui que talvez vocês tenham também: Que marcação utilizar ao criar um card no HTML?

O HTML varia muito dependendo do tipo de card:
- Card só como estética de conteúdo
- Card contendo link pra artigo/ página externa
- Lista de cards Card contento uma imagem no cabeçalho, título, texto lorem
A diferença de HTML entre um card só pela estética de card e um card para um link externo tá na necessidade de definir um escopo de conteúdo via sectioning content, se você nunca ouviu falar sobre isso eu explico um pouco na minha outra thread:
- Card só como estética de conteúdo
É a utilização da estética de card apenas pra organizar conteúdo, não referencia e nem contém links pra conteúdos externos. Geralmente são cards que apresentam features ou competências. 3 cards apresentando 3 features diferentes, cada card conté
Como esse tipo de card tem esse formato apenas por estética e seu conteúdo tá dentro do contexto do resto do conteúdo do site, podemos usar uma <div> como container. Se toda a informação da seção estiver contida no card e em mais nenhum lugar, use <section> Trecho de html. O card é uma div contendo uma imagem, um hg
Como o conteúdo desse card está direto no body, se você usar uma div e um header, esse header irá pertencer ao contexto do body. Caso seu body já tiver um header isso é considerado uma má prática, é como você criar dois cabeçalhos pro mesmo texto em um artigo
Nesse caso podemos usar um <hgroup>, é um container que serve pra guardar um ou mais headers. O nível desse heading é o mesmo do maior heading dentro dele. Se você tiver um h2 e um h3, o seu hgroup será um header de nível 2.

Caso tenha usado <section> e não <div> +
Você pode usar o elemento <header> pois como a <section> cria uma nova seção, o header vai se referir apenas ao card e não a todo o body.

No corpo do card podemos usar uma div pois esse container só vai servir pra alinhar e espaçar o corpo dos textos e não pra definir outlines
- Card contendo link pra artigo/ página externa
São usados como links para artigos, outras páginas e sites externos. Caso forem usados como links que fazem referência pro conteúdo da mesma página que eles estão, use o exemplo anterior 3 cards com temática de agência de viagem com a imagem do
Como esse tipo de card faz referência a conteúdos fora do contexto do site, o correto é usar um article. Como ele cria um outline (uma seção), é possível usar header e footer dentro do corpo do card. Quando o botão do card redireciona para uma outra página, é melhor utilizar um a Trecho de html. O card é um article contendo uma imagem, um
Se você precisa que o card inteiro seja clicável, talvez você queira colocar o card inteiro dentro de uma âncora. O Heydon Pickering escreveu um artigo sobre como fazer isso de forma acessível:

inclusive-components.design/cards/
- Lista de cards
Lista de cards, geralmente à partir de informações trazidas do backend. Um exemplo são as trilhas de recomendação da netflix Trecho do site da Netflix contendo uma lista numerada de car
Nesse caso, pra cada card siga as regras descritas acima, a única diferença é que esses cards estarão dentro de um <li>. Caso a ordem dos cards seja importante pra entender o conteúdo, use um <ol>, caso o conteúdo puder ser lido em qualquer ordem, use um <ul>.
Essa pode não ser a única forma de construir cards e eu talvez não tenha coberto todos os casos de uso, mas é uma formula que eu considero segura e tento aos poucos aplicar no dia-a-dia. É mais complexo do que o que costumamos ver por ai, mas tal como o JS, o HTML sempre tem +
espaço pra melhoria contínua e demanda estudo constante apesar de não mudar tão constantemente.

No tweet abaixo vou deixar referências, qualquer pergunta pode fazer na thread pra galera que tem as mesmas dúvidas ver também!
Cards no MDN
developer.mozilla.org/en-US/docs/Web…

Acessibilidade pra cards
inclusive-components.design/cards/

Talk sobre cards acessíveis com a Rian Rietveld com vários casos de uso diferentes
Ah! Codepenzinho com o card do primeiro tweet
codepen.io/camilo-michele…
Galera a @Luxferia me deu a dica de que o hgroup tá descontinuado. Vcs só vão achar essa informação documentada no item 11.1 da W3C - itens obsoletos. Caso forem agrupar headings usem div ou header

Referência:
w3.org/TR/2014/REC-ht…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Cu & Código

Cu & Código Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @lixeletto

5 Oct
Geral fala pra não usar div em tudo, pra usar 'containers semânticos', mas quais são eles e quando utilizá-los?

Nessa thread você vai aprender a usar:
- address
- article
- aside
- header
- footer
- main
- menu
- nav
- section

*vai ser um conteúdo avançado, façam perguntas!
O HTML foi criado inicialmente pra divulgação de documentos científicos na web. Diferente de um artigo escrito em word, não seguimos convenções como a norma ABNT pra separar sessões ou definir hierarquias, usamos contêineres HTML
Todo elemento tem uma finalidade e utilizá-los de forma correta facilita o trabalho de todos os mecanismos que interpretam nossa página pra oferecer a mesma experiência de conteúdo pra todo tipo de usuário e para crawlers buscarem seu conteúdo.
Read 24 tweets
26 Nov 20
Gente, acabei de ver um cara falar pra trocar o <form> por uma <div> pra cessar o trigger do evento ao clicar no botão, nunca, sob hipótese alguma, substituam o elemento form por outra coisa, segue o porquê:
1 - Você perde a lista gigante de métodos disponíveis no elemento form (HTMLFormElement), na dúvida? Abre seu devTools e no console digite:

`dir(HTMLFormElement)`

Em seguida acesse o grupo `prototype` dele:
Tal como a <div> ele herda muitos métodos do prototype HTMLElement, mas ele tem métodos próprios valiosíssimos:

- elements
Retorna uma HTMLFormControlsCollection, que é uma array com todos os seus inputs
developer.mozilla.org/en-US/docs/Web…
Read 11 tweets
8 Sep 20
E vamos falar sobre as propriedades `position` e como usá-las sem fuder o seu layout e causar traumas pra vida inteira, a thread 🧵
Qual a diferença entre os dois?
Ao definir qualquer position que não static, você habilita os controles de posição (Y: top bottom, X: left right), esses controles começam zerados e com eles você movimenta seu elemento nas dimensões X e Y da página.
A diferença entre relative e absolute é o que é a posição (0, 0) do elemento posicionado.

No caso de `relative`, a posição padrão (0, 0) é o local atual do elemento, à partir do canto superior esquerdo dele. Por isso que ao colocar `position: relative` o elemento n sai do lugar
Read 17 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(