Lista de Categorias com Banners

Este componente adiciona banners opcionais aos estilos padrão da página de categoria Apenas Categorias e Categorias com Tópicos em Destaque:

Você pode adicionar banners nas configurações do componente definindo a categoria logo abaixo do banner, uma cor de banner e o texto do título. Há também uma opção para ocultar as bordas coloridas padrão:

Para adicionar estilos, você pode selecionar a classe geral, bem como banners específicos por ID de categoria:

.category list .category-list-banner {
  &.category-5 { [estilize um banner específico] }
  &:after { [estilize os títulos] }
}

Por exemplo, você pode codificar suas categorias por cores:

Ou adicionar imagens de fundo:

:warning: Este componente apenas adiciona elementos de layout à página de categoria. Portanto, você não pode referenciar esses títulos em nenhum outro lugar do seu site. Outra observação: não há um estilo de página padrão Apenas Categorias no modo móvel. Ele sempre mostrará os tópicos em destaque também.

:+1: Créditos: O componente foi inspirado na aparência da Comunidade Cfx.re e na solução original de @godgutten para alcançar esse visual, conforme compartilhado em Como adicionar banners de categoria?

28 curtidas

Obrigado, Nolo! Muito legal! Seu componente melhorou nossa comunidade

1 curtida

Nolo, encontrei outro problema ao alternar o estilo do fórum para o modo noturno. Se você puder corrigi-lo, ficará perfeito!

Isso parece ser o comportamento esperado.. O slot de cor aceita qualquer valor que possa ser usado como background-color no CSS. Portanto, ao fornecer um valor hexadecimal, a cor permanecerá a mesma em diferentes modos e temas.

Se você realmente não quiser uma cor de fundo, deve especificar none ou transparent.

Se deseja uma cor de fundo que mude conforme o modo, você precisará especificá-la usando uma variável CSS personalizada: pode usar uma das pré-definidas pelo Discourse, como var(--secondary-high). Ou definir as suas próprias, conforme explicado em

3 curtidas

Nolo, obrigado, isso ajudou!

2 curtidas

Olá, adoro ver o que você conseguiu criar. Mas é permitido me dar crédito também e não apenas me roubar e usar parte do meu trabalho…

Fico feliz que você goste do componente! Não tenho certeza por que você me acusa de roubar seu trabalho, no entanto…?

Fazer este componente foi inspirado neste tópico:

Eu indiquei o OP para sua solução, mas então fiquei interessado em como resolver isso sem codificar os templates e desconstruindo valores de uma lista de configurações dentro do SCSS. Portanto, o código do componente é essencialmente sobre esta solução:
https://meta.discourse.org/t/how-to-add-settings-to-your-discourse-theme/82557/52?u=nolo

Mas, em qualquer caso: se você sentir que usei parte do seu trabalho e eu deixei de dar os créditos, por favor, me avise e eu atualizarei o primeiro post :ok_hand:

1 curtida

Sim, por favor, adoraria receber pelo menos algum tipo de crédito. Mas depende de você. Fora isso, parece bom e vou recomendar este componente de tema na minha postagem, pois isso facilita para novos usuários.

2 curtidas

@ Nolo
Existe uma maneira no TC, ou com CSS no tema, de alinhar o texto do Título à esquerda, assim como no seu segundo exemplo).

Além disso, existe uma maneira (se não usar uma imagem de banner) de redimensionar o cabeçalho para a espessura de uma linha de texto.
E, se sim, você pode redimensionar o texto para que não seja tão grande?

2 curtidas

Sim, claro, você pode estilizar os banners usando estas classes:

Se você quiser sobrescrever declarações existentes na classe geral, você precisará usar a propriedade !important. Por exemplo, para os estilos que você mencionou:

.category-list .category-list-banner {
    justify-content: flex-start !important;
    min-height: unset !important;
    &:after {
        font-size: var(--font-up-3) !important;
    }
}

Isso ocorre porque os estilos são realmente declarados nos banners específicos. Acho que poderia melhorar isso no componente, mas por enquanto você precisaria sobrescrever com important.

3 curtidas

Muito obrigado por este componente!! Estou desenvolvendo um fórum político e poder aplicar esse tipo de separação é fundamental.
Embora já seja uma grande melhoria para o meu fórum, faria uma diferença enorme se os cabeçalhos pudessem ser referenciados por URL, pois isso permitiria criar botões no topo do fórum a partir dos quais o usuário poderia navegar facilmente na mesma página. Seria uma funcionalidade extremamente ágil se o fórum (esperançosamente) ficar muito maior. Isso é possível atualmente?

1 curtida

Obrigado pela sugestão @lisandro_iaffar. Embora este componente esteja realmente apenas fornecendo uma solução leve que não altera os modelos HTML. Se você quiser referenciar as seções, precisará usar uma abordagem como a oferecida por GitHub - discourse/discourse-minimal-category-boxes.

2 curtidas

Obrigado pela sua resposta e por fornecer orientação :slight_smile:
E obrigado novamente por este componente, ele melhorou muito o layout do meu fórum :smiley:

2 curtidas

Estou animado para experimentar isso, pois criei muitas categorias e poder organizá-las em grupos será uma grande ajuda.

Saberei quando experimentar, isso também poderia ser uma forma de deixar categorias antigas e menos usadas fora da página principal, certo? Elas ainda estariam disponíveis na nova barra lateral.

1 curtida

Sim, claro :+1: Na verdade, eu quase sempre faço seleções de categorias em diferentes elementos da página (barra lateral, cabeçalho, barra de navegação, página de categoria,..) É como a estrutura do site de um website. É importante que esteja bem organizado, mas não precisa determinar a sua apresentação de UI.

Olá @manuel, gostaria de saber se este componente maravilhoso ainda funciona após as atualizações do speech, instalei e não funcionou para mim, agradeço desde já.

como você adiciona imagens de fundo?

Olá, bem-vindo :wave:

Você pode adicionar CSS em seus temas ou em um componente de tema separado:

Por exemplo, supondo que você queira adicionar uma imagem à categoria ID 4, você faria algo assim:

.category-list .category-list-banner {
    &.category-4 {
        background-image: url(https://images.unsplash.com/32/Mc8kW4x9Q3aRR3RkP5Im_IMG_4417.jpg);
        background-size: cover;
    }
}

Este é apenas um exemplo. Para mais informações, você pode consultar as propriedades CSS de background.

Links úteis também :+1: :

2 curtidas

Uma postagem foi dividida em um novo tópico: Adicionar informações extras à caixa de categoria