Haciendo que las etiquetas parezcan etiquetas del mundo real

I was looking for having CSS for tags like this: 18%20PM

But my current tags look like this:

See txpower and alfa are tags.

Here’s the CSS I am using:

.discourse-tag.box {
    border: 1px solid #595959;
    border-radius: 3px;
    background-color: transparent;
    padding: 1px 6px;
    font-weight: bold;
}

For the sake of differentiability, I wanted my tags to look like real tags, but CSS from the internet is breaking the discourse’s CSS in unimaginable ways. and I just can’t get it right. Can anyone help with the CSS changes I need?

1 me gusta

I was looking to use something similar years ago, you can try to use this and customize it as you wish

.discourse-tag.box {
  position: relative;
  display: inline-block;
  text-decoration: none;
  background-color: #bfbfbf !important;
  height: 26px;
  line-height: 26px;
  padding: 0 20px 0 23px;
  margin: 0 10px 0 0;
}
.discourse-tag.box::before {
  position: absolute;
  content: '';
  background: #fff;
  border-radius: 100%;
  height: 6px;
  left: 10px;
  width: 6px;
  top: 10px;
  box-shadow: inset 0 1px rgba(0, 0, 0, 0.25);
}
.discourse-tags .discourse-tag.box::after {
  position: absolute;
  content: '';
  background: #fff;
  border-bottom: 13px solid transparent;
  border-left: 10px solid #bfbfbf;
  border-top: 14px solid transparent;
  right: 0;
  top: 0;
}
a.discourse-tag.box {
    color: #fff !important;
}

Almost certainly if you have plugins that add elements to the title, as the voting plugin you will need to make corrections.

13 Me gusta

Awesome! I made some edits like colours and width equal to category and here is my CSS for that:

.discourse-tag.box {
    position: relative;
    display: inline-block;
    text-decoration: none;
    background-color: #646464 !important;
    border-radius: 3px 0 0 3px;
    height: 21px;
    line-height: 21px;
    padding: 0 13px 0 22px;
    margin: 0 10px 0 0;
}
.discourse-tag.box::before {
    position: absolute;
    content: '';
    background: #000;
    border-radius: 100%;
    height: 6px;
    left: 8px;
    width: 6px;
    top: 8px;
    box-shadow: inset 0 1px rgba(0,0,0,0.25);
}
.discourse-tags .discourse-tag.box::after {
  position: absolute;
  content: '';
  background: black;
  border-bottom: 11px solid transparent;
  border-left: 10px solid #646464;
  border-top: 10px solid transparent;
  right: 0;
  top: 0;

}
a.discourse-tag.box {
    color: #d4d4d4 !important;
}

Note that I disabled my earlier CSS Completely as it was conflicting with the newer one. and made it honor the black theme :slight_smile:

Here is what it looks like:

53%20PM

Although I did want to have the triangle on the left hand side which is more real-like and gives a sense of real tag. which is tied from the triangular end and flat on the other end. But nevermind. I’ll learn some CSS and would post update to it.

Thanks a lot for your code @dax! You are awesome! :smile:

8 Me gusta

Nice CSS code snippet :slight_smile: Thanks!

I experienced a minor issue with my css code: Not sure why, but with Safari and Chrome (!) …

  • … on my iPhone 8+, all of the tags have a thin line on the right next to the flap.
  • … on my iPad mini 4, only some thin lines will appear on the right next to the flap. (e.g. tags with 2 characters)
  • … on my Mac everything is just fine

It seems, the “after” css container is repeating itself. How can I fix this?

I made them a litte bit thinner … 03

See CSS Code
.discourse-tag.box {
    position: relative;
    display: inline-block;
    text-decoration: none;
    font-weight: normal;
    background-color: #e28a54 !important;
    border-radius: 3px 0 0 3px;
    height: 20px;
    line-height: 20px;
    padding: 0 13px 0 21px;
    margin: 0 10px 0 0;
}
.discourse-tag.box::before {
    position: absolute;
    content: '';
    background: #ffffff;
    border-radius: 100%;
    height: 6px; 
    left: 7px;
    width: 6px;
    top: 7px;
    box-shadow: inset 0 1px rgba(0,0,0,0.25);
}
.discourse-tags .discourse-tag.box::after {
  position: absolute;
  content: '';
  background: white;
  border-bottom: 11px solid transparent;
  border-left: 10px solid #e28a54;
  border-top: 10px solid transparent;
  right: 0;
  top: 0;

}
a.discourse-tag.box {
    color: #fff !important;
}
2 Me gusta

Just delete the line border-radius: 3px 0 0 3px;
This fix the thin line problem on IOS (and Chrome) for short tags (thanks to @simon that help me to debug with his Mac).

I will update the code above

PS. I have no Iphone, so check if the fix works even there

5 Me gusta

That’s exactly my issue. In some lines with 2 tags, I see a flap on my iOS device, both safari and chrome. But seems to work fine on on MacOS.

Apart from that, can you change the direction of the triangle in the Tag, like this: 18%20PM I tried my beginner CSS skills but couldn’t achieve that. Can you help me out with that?

I changed color of my code to Red (my theme color) and it looks awesome as yours :slight_smile:
But using colours on tags drives focus on tags constantly rather than the titles which are more important. So I’d still keep the tags in kind of background and content in front.

Here is what it looks like: 24%20AM
Just in case somebody else want a red tag on black theme. here is my CSS code for that:

CSS for Red Tag on Black Background

.discourse-tag.box {
position: relative;
display: inline-block;
text-decoration: none;
font-weight: normal;
background-color: #9c0c16 !important;
border-radius: 3px 0 0 3px;
height: 20px;
line-height: 20px;
padding: 0 13px 0 21px;
margin: 0 10px 0 0;
}
.discourse-tag.box::before {
position: absolute;
content: ‘’;
background: #000;
border-radius: 100%;
height: 6px;
left: 7px;
width: 6px;
top: 7px;
box-shadow: inset 0 1px rgba(0,0,0,0.25);
}
.discourse-tags .discourse-tag.box::after {
position: absolute;
content: ‘’;
background: #000;
border-bottom: 11px solid transparent;
border-left: 10px solid #9c0c16;
border-top: 10px solid transparent;
right: 0;
top: 0;

}
a.discourse-tag.box {
color: #fff !important;
font-weight: bold;
}

1 me gusta

Commenting the code did help. but we loose the beauty of the tag.
look: image

flat edges :expressionless:

1 me gusta

Alternatively, to restyle the bullet to a tag icon:

.discourse-tag.bullet::before {
  font-size: 1.0em;
  top: 0em;
  margin-right: 3px;
  content: "\f02b";
  color: #ccc;
}

for:

21

4 Me gusta

That’s also quite cool.
It is space saver and doesn’t drive focus away from the main content!
Thanks for sharing :slight_smile:

For people who might discover issue. Just change the tag type from box to bullet in Admin > Settings

1 me gusta

Tengo que decir que apoyo esta idea de que las etiquetas no sean rectangulares, sino que se vean como etiquetas. Sin embargo, solo usar CSS no es suficiente, al menos no esta solución. Esto solo funciona con un fondo negro donde no se ve el triángulo.

image

De lo contrario, se puede ver esto:

image

Debe haber una mejor manera de hacer esto. https://codepen.io/matt-harris/pen/GqFev

1 me gusta

Esta solución ya no parece funcionar; hay una versión actualizada:

(Nota: esto es para el tipo de etiqueta con viñeta, por lo que si originalmente usas un estilo diferente, el selector CSS será distinto.)

@import url("https://use.fontawesome.com/releases/v5.13.0/css/all.css");

.discourse-tag.bullet::before {
    top: 0em;
    margin-right: 5px;
    content: "\f02b";
    color: #bbbdbb;
    background: none;
    height: 16px; /* Es posible que necesites ajustar esto un poco para la vista móvil */
  
    font-weight: 900;
    font-size: 0.9em;
    font-family: "Font Awesome 5 Free"; /* Esta es la fuente correcta */
}

O, para reducir la carga innecesaria de todo el archivo https://use.fontawesome.com/releases/v5.13.0/css/all.css, puedes eliminar esa línea @import y usar un SVG como contenido:

   content: url('data:image/svg+xml; utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="10" width="10" ><path fill="grey" d="M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"/></svg>');

Puedes encontrar todos los SVG aquí:

3 Me gusta

Para mí funcionó, pero no fue .discourse-tag.bullet::before, sino esto:

@import url("https://use.fontawesome.com/releases/v5.13.0/css/all.css");
    .discourse-tag.box::before {
        top: 0em;
        margin-right: 5px;
        content: "\f02b";
        color: #bbbdbb;
        background: none;
        height: 16px; /* Es posible que necesites ajustar esto un poco para la vista móvil */
      
        font-weight: 900;
        font-size: 0.9em;
        font-family: "Font Awesome 5 Free"; /* Esta es la familia de fuentes correcta */
    }
   .extra-info-wrapper .discourse-tag.box {
        background:none;
    }
    .discourse-tag.box {
        background:none;
    }
2 Me gusta

Se me olvidó mencionar que mi código es para el tipo de etiqueta: viñeta, por lo que, originalmente, si usas un estilo diferente, el selector CSS será distinto.