Lista de categorías con banners

Este componente agrega banners opcionales a los estilos predeterminados de la página de categorías Solo Categorías y Categorías con Temas Destacados:

Puedes agregar banners en la configuración del componente definiendo la categoría justo debajo del banner, un color de banner y el texto del encabezado. También hay una opción para ocultar los bordes de color predeterminados:

Para agregar estilos, puedes seleccionar la clase general, así como banners específicos por ID de categoría:

.category list .category-list-banner {
  &.category-5 { [estiliza un banner específico] }
  &:after { [estiliza los encabezados] }
}

Por ejemplo, podrías codificar tus categorías por colores:

O agregar imágenes de fondo:

:warning: Este componente solo agrega elementos de diseño a la página de categorías. Por lo tanto, no puedes hacer referencia a estos encabezados en ningún otro lugar de tu sitio. Otra precaución: No hay un estilo de página predeterminado Solo Categorías en dispositivos móviles. Siempre mostrará los temas destacados también.

:+1: Créditos: El componente fue inspirado por el aspecto de la Comunidad Cfx.re y por la solución original de @godgutten para lograr ese aspecto, compartida en ¿Cómo agrego banners de categoría?

28 Me gusta

¡Gracias, Nolo! ¡Qué genial! Tu componente ha mejorado nuestra comunidad.

1 me gusta

Nolo, he encontrado otro problema al cambiar el estilo del foro al modo oscuro. ¡Si puedes solucionarlo, será perfecto!

Eso parece ser el comportamiento esperado. El campo de color acepta cualquier valor que puedas usar como background-color en CSS. Por lo tanto, si proporcionas un valor hexadecimal, el color se mantendrá igual en diferentes modos y temas.

Si realmente no deseas un color de fondo, debes especificar none o transparent.

Si prefieres un color de fondo que cambie según el modo, deberías especificarlo usando una propiedad personalizada de CSS: podrías utilizar una de las predefinidas por Discourse, como var(--secondary-high). También puedes definir las tuyas propias, tal como se explica en Update themes and plugins to support automatic dark mode

3 Me gusta

Nolo, gracias, ¡eso ayudó!

2 Me gusta

Hola, me encanta ver lo que has logrado crear. Pero, ¿se me permite darme crédito también y no solo aprovecharme y usar parte de mi trabajo…?

¡Me alegra que te guste el componente! No estoy seguro de por qué me acusas de robarte tu trabajo…

Hacer este componente se inspiró en este tema:

Me referí al OP a tu solución, pero luego me interesó cómo resolver esto sin codificar las plantillas y deconstruyendo valores de una lista de configuraciones dentro de scss. Así que el código del componente trata esencialmente sobre esta solución:
https://meta.discourse.org/t/how-to-add-settings-to-your-discourse-theme/82557/52?u=nolo

Pero en cualquier caso: si sientes que usé parte de tu trabajo y me olvidé de dar crédito, por favor házmelo saber y actualizaré la primera publicación :ok_hand:

1 me gusta

Sí, por favor, me encantaría recibir al menos algún tipo de crédito. Pero depende de ti. Aparte de eso, se ve bien y recomendaré este componente temático en mi publicación, ya que esto facilita las cosas a los nuevos usuarios.

2 Me gusta

@ Nolo
¿Hay alguna forma en el TC, o con CSS en el tema, de alinear a la izquierda el texto del encabezado, al igual que tu segundo ejemplo).

¿También hay alguna forma (si no se usa una imagen de banner) de cambiar el tamaño del encabezado al grosor de una línea de texto?
Y si es así, ¿puedes cambiar el tamaño del texto para que no sea tan grande?

2 Me gusta

Claro, puedes estilizar los banners usando estas clases:

Si quieres sobrescribir declaraciones existentes en la clase general, necesitarás usar la propiedad !important. Por ejemplo, para los estilos que mencionaste:

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

Eso es porque los estilos se declaran realmente en los banners específicos. Supongo que podría mejorar eso en el componente, pero por ahora necesitarías sobrescribir con important.

3 Me gusta

¡Muchas gracias por este componente! Estoy desarrollando un foro político y poder aplicar este tipo de separación es fundamental.
Si bien ya es una gran mejora para mi foro, sería un mundo de diferencia si las cabeceras pudieran ser referenciadas por URL, ya que eso permitiría crear botones en la parte superior del foro desde los cuales el usuario podría navegar fácilmente en la misma página. Sería una funcionalidad extremadamente ágil si el foro (con suerte) se vuelve mucho más grande. ¿Es esto posible actualmente?

1 me gusta

Gracias por la sugerencia @lisandro_iaffar. Aunque este componente realmente solo proporciona una solución ligera que no cambia las plantillas HTML. Si desea hacer referencia a las secciones, necesitaría usar un enfoque como el que ofrece GitHub - discourse/discourse-minimal-category-boxes.

2 Me gusta

Gracias por tu respuesta y por proporcionar orientación :slight_smile:
Y gracias de nuevo por este componente, ¡ha mejorado mucho el diseño de mi foro! :smiley:

2 Me gusta

Estoy emocionado de probar esto, ya que he creado demasiadas categorías y poder organizarlas en grupos será de gran ayuda.

Lo sabré cuando lo intente, ¿esto también podría ser una forma de dejar las categorías antiguas y menos usadas fuera de la página principal, verdad? Aún estarían disponibles a través de la nueva barra lateral.

1 me gusta

Sí, claro :+1: De hecho, casi siempre hago selecciones de categorías en diferentes elementos de la página (barra lateral, encabezado, barra de navegación, página de categoría, ..) Es como la estructura del sitio de un sitio web. Es importante que esté bien organizado, pero no es necesario que determine tu presentación de interfaz de usuario.

Hola @manuel, me gustaría saber si este maravilloso componente sigue funcionando después de las actualizaciones del discurso, lo instalé y no me funciona, gracias de antemano.

¿Cómo se agregan imágenes de fondo?

Hola, bienvenido :wave:

Puedes añadir CSS en tus temas o en un componente de tema separado:

Por ejemplo, asumiendo que quieres añadir una imagen a la categoría ID 4, harías algo como esto:

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

Esto es solo un ejemplo. Para más información, puedes consultar las propiedades CSS de background.

Enlaces útiles también :+1: :

2 Me gusta

Se dividió una publicación en un nuevo tema: Añadir información adicional al cuadro de categoría