Plantilla de tema Canvas

|||
|-|-|-|
| :information_source: | Resumen | Inicia rápidamente el diseño de tu tema con una plantilla preparada.
| :eyes: |Audiencia| Nuevos desarrolladores que quieran empezar a crear temas para Discourse. Desarrolladores experimentados que quieran usar una plantilla lista para usar. |
| :hammer_and_wrench:|Repositorio| Manuel Kostka / Discourse / Canvas / Canvas Theme Template · GitLab |
| :question:|Guía de instalación|Cómo instalar un tema o componente de tema|
| :open_book:|¿Nuevo en Temas de Discourse?| Guía para principiantes sobre el uso de Temas de Discourse|

Canvas proporciona una plantilla flexible que te permite crear temas personalizados con menos código. Ajusta fácilmente las propiedades y los valores de configuración para adaptar un tema a tus necesidades.

Vistas de ejemplo


La plantilla base conserva los valores predeterminados y mantiene un diseño neutral.

Ajustes mínimos que modifican algunas propiedades personalizadas y definen un color de resaltado:

Un diseño que integra el componente Topic Cards y estilos personalizados para los banners:

Un tema elaborado que incluye una fuente personalizada y esquemas de color únicos:

Uso


  1. Clona la plantilla de tema.

  2. Sincroniza el tema con tu instancia de Discourse utilizando la gema discourse_theme.

  3. Ve al backend de administración y ajusta manualmente estas configuraciones del componente de tema:
    Banners de categoría
    Salida del plugin → above-main-container
    Banners de etiquetas
    Mostrar debajo del encabezado del sitio → desmarcar
    Mostrar encima del contenedor principal → marcar

  4. Edita scss/properties.scss para definir los valores de las propiedades personalizadas.

  5. Edita about.json para añadir activos, esquemas de color y más componentes de tema.

Un vistazo más de cerca a la configuración


La plantilla Canvas Theme solo extiende el esqueleto del tema predeterminado, incluyendo algunos componentes de tema y añadiendo algunos archivos de estilo listos para usar. Las funcionalidades reales son manejadas por un componente de tema separado, Canvas Settings. Este componente cumple dos funciones:

Esta configuración dividida te permite crear un tema utilizando la plantilla Canvas, mientras sigues beneficiándote de las correcciones y actualizaciones continuas proporcionadas a través del componente.

Temas de ejemplo


Puedes revisar el código de las vistas de ejemplo compartidas o instalarlas como tu tema de inicio desde estos repositorios:


:tada: ¡Un enorme agradecimiento a Discourse por patrocinar el desarrollo de este proyecto!

24 Me gusta

Esas configuraciones del tema no aparecen cuando intenté instalar los temas de ejemplo. ¿Es ese el comportamiento esperado?

1 me gusta

La configuración está en el componente de tema instalado como Configuración de Canvas. Quizás sea un poco confuso que la configuración siempre se llame Configuración de Tema en la interfaz de usuario, incluso en los componentes de tema.

2 Me gusta

¡Los encontré en el componente Configuración del lienzo, gracias!

3 Me gusta

Muchas gracias por trabajar en esto, @manuel.

Probé la versión del Editor localmente, funciona muy bien en su mayor parte, pero noté algunos pequeños problemas.


En una instalación predeterminada, sin cambiar ninguna configuración, la etiqueta de la categoría en el componente de Banners Adicionales aparece en el lugar equivocado:

El banner de la categoría también se muestra en el mismo lugar, encima de la barra lateral. Los temas más recientes y los temas populares se muestran correctamente en la columna principal.


Supongo que no es un objetivo del tema cubrir completamente la interfaz de administración, sin embargo, las paletas de colores claro y oscuro del Editor hacen que la barra lateral de administración se vea bastante diferente. Tengo curiosidad si es posible armonizarla con la barra lateral no administrativa.

5 Me gusta

El tema está diseñado para mostrar banners junto a la barra lateral, utilizando el outlet above-main-container. El componente Extra-Banners utiliza ese outlet por defecto, pero los dos componentes para los banners de Categoría y Etiqueta se renderizan por defecto debajo de la cabecera. No querría hacer un fork de estos componentes solo para establecer un outlet por defecto diferente. Por eso puse estas instrucciones:

Pero si eso es fácil de pasar por alto, ¿quizás hay una mejor manera de decirlo? :thinking:

Sí, eso es bastante fácil y parece un buen enfoque para este tema. ¡Acabo de añadir un commit!

5 Me gusta

Ah sí, veo cómo llegamos aquí. No queremos necesariamente cambiar los valores predeterminados en los componentes de banners de categorías/etiquetas, tampoco queremos bifurcarlos. Es complicado de arreglar, dejémoslo como está por ahora y veamos si otros se encuentran con el mismo problema.

El cambio en la barra lateral del administrador ya se ve bien, ¡gracias!

4 Me gusta

¿Se podrían detallar un poco estas instrucciones? ¿No es posible simplemente instalar desde la interfaz de administración? Gracias :folded_hands:t4:

EDITAR: Lo instalé a través de la interfaz de administración y parece estar funcionando, excepto que ahora no parece haber ningún lugar para editar scss.

EDITAR: Olvídalo, veo que probablemente se espera y estás mostrando editar los archivos del tema directamente. Me pregunto si esto podría estar en la hoja de ruta para que suceda a través de la interfaz de administración. Por ejemplo, tener un editor de variables igual que tienes un editor de configuración.

3 Me gusta

No sé cuál es el plan principal, pero una cosa que podrías hacer ahora mismo es crear un nuevo componente de tema directamente en la interfaz de administración:

Y luego declarar propiedades personalizadas en su archivo CSS. Podrías buscar propiedades en el archivo Readme. O copiar el contenido de properties.scss del repositorio del tema.

2 Me gusta

¿Cómo clono esto en GitHub? Todavía estoy un poco verde :wink:

Podrías importarlo a través de la interfaz de usuario:

Sin embargo, si quieres poder sincronizar cambios, creo que necesitarías hacer un pull a un clon local y luego hacer un push desde él. Algo como esto:

  1. Clonar desde GitLab
git clone "https://gitlab.com/manuelkostka/discourse/canvas/theme.git"
  1. Establecer la URL de push a tu repositorio de GitHub
git remote set-url --push origin "git@github.com:Username/Reponame.git"
  1. Luego puedes hacer fetch periódicamente desde GitLab y push a GitHub
git fetch -p origin
git push origin
2 Me gusta

No veo un signo más en el móvil en GitHub. Es posible que necesite probar las líneas de comando cuando esté en casa.

Todo lo que veo en GitHub en el panel es la opción de crear un nuevo repositorio, pero no la opción de reclamar. Estoy en una cuenta gratuita, así que no estoy seguro de si eso podría tener algo que ver.

Agregué un componente que te permite definir algunas variables de estilo y opciones de diseño directamente en la interfaz de usuario del componente:

Es limitado en comparación con la declaración de variables personalizadas en la hoja de estilos. Pero te permite experimentar con algunas apariencias diferentes. ¡Tengo curiosidad por saber si eso funciona! :eyes:

2 Me gusta

¡Estoy jugando con él ahora mismo y creo que está muy bien! ¿Hay alguna forma de reducir el espaciado entre líneas del menú, para hacerlo más compacto?

Además, no puedo desplazar la barra lateral sólida, ¿es un error?

2 Me gusta

¡Acabo de ajustar los estilos CSS para la barra lateral sólida, el desplazamiento debería funcionar de nuevo!

Sin embargo, la barra lateral sólida es solo una de las opciones en el componente de Estilos que mencioné en la publicación anterior. Si desea ajustar más estilos (como el espaciado del menú de la barra lateral), deberá seguir el enfoque explicado anteriormente en Uso y Una mirada más cercana a la Configuración: Use su propia hoja de estilos con propiedades CSS personalizadas; en este caso, sería -d-sidebar-row-height.

3 Me gusta

He reunido un nuevo tema de ejemplo basado en esta plantilla. Como su nombre indica, ¡este es un homenaje al tema Central original! :hugs: :partying_face:

Me encantó el diseño y el estilo visual de Central y he estado empaquetando algunas de sus características en componentes independientes, como el Menú de Usuario Personalizado y varios bloques de la barra lateral.

Me di cuenta de que con la barra lateral y algunos estilos, esta plantilla en realidad te acerca bastante a la apariencia del tema original.


En cualquier caso, no planeo reconstruir completamente el tema Central… pero aún podría experimentar con un estilo de lista de temas dedicado en el futuro. Si tienes curiosidad y quieres echar un vistazo, el tema también está disponible aquí: https://central.kostka.studio

8 Me gusta

Muy bien. Gracias por compartir.

1 me gusta

¡Gracias por compartir esta plantilla! La flexibilidad con los componentes y el diseño limpio hacen que sea realmente fácil de personalizar. Tengo muchas ganas de probarla en mi propia instancia.

2 Me gusta

¡Bienvenido a Discourse :discourse: !

2 Me gusta