Discourse Fácil 'SVG Icon' y 'Emoji' en CSS

<div data-theme-toc="true"> </div>

Hola :wave:

Este tema contiene dos componentes temáticos.

Discourse Easy SVG Icon CSS

:warning: Este componente temático funciona como una plantilla, por favor, hazle fork en Github o usa el código en tu proyecto. Puedes eliminar los códigos SVG de los iconos del SCSS y quedarte solo con los que realmente uses… He importado el archivo mixin al archivo common.scss para que puedas añadir tu código debajo de esa línea o por separado en la sección de escritorio o móvil.

El componente temático añade la capacidad de mantener los iconos SVG de forma mantenible y fácilmente editable en tu CSS. El componente contiene todos los iconos SVG que se encuentran aquí: discourse/vendor/assets/svg-icons/fontawesome at main · discourse/discourse · GitHub



¿Cómo usar?

Parámetros fijos:

$icon-set: brands, regular, solid
$icon-name: nombre del icono
$icon-color: color del icono (currentColor, hexadecimal o variable de color)
$width y $height: el tamaño del icono añadido

Se ve así:

@include svg-icon($icon-set, $icon-name, $icon-color, $width, $height);

Usando currentColor
Aquí tienes un ejemplo para añadir un icono de cohete sólido antes del elemento de navegación Latest.

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(solid, rocket, currentColor, 1em, 1em);
        }
      }
    }
  }
}

add-icon-to-latest


Usando la variable de color var(--gold)
Aquí tienes un ejemplo para añadir un icono de estrella regular dorado antes del elemento de navegación Top.

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include svg-icon(regular, star, var(--gold), 1em, 1em);
        }
      }
    }
  }
}

add-star-to-top


Podemos cambiar fácilmente el conjunto de iconos, el color o incluso el icono al pasar el ratón por encima, etc… ¡Veamos!

Ahora cambiamos el icono regular a sólido cuando pasamos el ratón por encima del botón.

#navigation-bar {
  li.nav-item {
    &_top {
      a {      
        gap: 0.5em;
        &:hover,
        &:focus,
        &.active {
          &:before {
            @include svg-icon(solid, star, currentColor, 1em, 1em);
          }
        }
        &:before {
          content: "";
          @include svg-icon(regular, star, currentColor, 1em, 1em);
        }
      }
    }
  }
}

change-icon-set


Discourse Easy Emoji CSS

:warning: Este componente temático funciona como una plantilla, por favor, hazle fork en Github o usa el código en tu proyecto. He importado el archivo mixin al archivo common.scss para que puedas añadir tu código debajo de esa línea o por separado en la sección de escritorio o móvil.

¿Cómo usar?

El uso es similar a la versión SVG.

Parámetros fijos:

$emoji-set: apple, google, twitter, win10, google_classic, facebook_messenger
$emoji-name: nombre del emoji
$width y $height: el tamaño del emoji añadido

@include emoji($emoji-set, $emoji-name, $width, $height);

Aquí tienes un ejemplo para añadir un emoji de cohete facebook_messenger antes del elemento de navegación Latest y un emoji de estrella twitter antes del elemento de navegación Top.

#navigation-bar {
  li.nav-item {
    &_latest {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(facebook_messenger, rocket, 1em, 1em);
        }
      }
    }
    &_top {
      a {      
        gap: 0.5em;
        &:before {
          content: "";
          @include emoji(twitter, star, 1em, 1em);
        }
      }
    }
  }
}

Screenshot 2024-03-25 at 5.26.26

13 Me gusta

Buenos días @Don,

He estado siguiendo atentamente tu trabajo y creo que he incorporado todas tus creaciones en mi foro. Sin embargo, con este elemento en particular, no estoy seguro. Desde la actualización de Discourse, mi mente se ha confundido y no recuerdo dónde implementar estos códigos CSS. He integrado tu código de GitHub en el tema, pero no parece que se muestre nada.

1 me gusta

Creo que el tema se supone que es una base editable para que trabajes:

Lo que explicaría por qué no apareció nada cuando lo instalaste, ya que la plantilla probablemente haría poco o nada por sí sola.

1 me gusta

¿No debería esto ser visible para nosotros?

o

No, ya que es un tema remoto, lo que significa que debes descargarlo de GitHub y cargarlo como un archivo zip en tu instancia, o bifurcar el repositorio de GitHub y hacer tus cambios allí.

1 me gusta

De hecho, este es un concepto completamente nuevo para mí. Sin embargo, comprendo su punto; cada día es una oportunidad para aprender, y agradezco la rápida respuesta.

2 Me gusta

Hola @Aaron_Walsh :waving_hand: ¿Funcionó finalmente para ti? ¿Hay algún caso de uso específico en el que quieras usar esto? Si compartes algunos detalles, puedo crear un componente temático separado basado en esto, donde se pueda modificar fácilmente con la configuración.

Buenos días,

El esfuerzo habría tenido éxito; sin embargo, ya no dispongo de un portátil con Windows para editar. En su lugar, he optado por usar un Samsung Galaxy S9 Ultra, una decisión que ahora lamento un poco :sweat_smile:.

Existe un método a través del cual puedo realizar esta tarea utilizando mi servidor de alojamiento (cPanel) subiendo y editando. No obstante, debo señalar con pesar que el trabajo que ha elaborado puede resultar intrincado para algunas personas.

Por lo tanto, si está de acuerdo,

9e9f0a12fb60537533c141e18e145f7d98eecb9c

¡Este diseño es objeto de mi admiración y el que me atrae particularmente!

1 me gusta

Sí, esa es la razón por la que se colocó en la categoría Dev, pero no te preocupes, haré un Theme component para este caso de uso. :slightly_smiling_face:

3 Me gusta

¡Disculpas, fue mi descuido! Sin embargo, de ahora en adelante, estaré mejor informado al respecto.

Hola :waving_hand: Este Theme component está terminado. :white_check_mark:

¡Eres increíble! ¡Gracias!

1 me gusta