How do you set alternating colors in the list of topics

How do you set alternating colors in the list of topics? It helps usability a lot, but it is all white by default.

example:

You can achieve this with a CSS customization. Here’s an example to get you started:

.topic-list-item:nth-child(even) {
    background-color: #EEE;
}

.topic-list-item:nth-child(odd) {
    background-color: #FFF;
}

Here’s how this looks on Meta:

And for those who are looking to change the background of topics, here’s the solution:

div.topic-post:nth-child(odd), div.small-action:nth-child(odd) { background-color: #FAFBFF; } div.topic-post:nth-child(even), div.small-action:nth-child(even) { background-color: #F6F6FF; }

And here’s the discussion about why it isn’t the default anymore:

https://meta.discourse.org/t/the-death-of-the-grey-no-more-tiger-striping-rows-by-default/28664?u=falco

@fefrei Care to extract this into a super simple theme component? :blush:

@Silvanus same for your topic tweak. I was thinking maybe we’d just include it in the “tiger striping component” but commented out by default, but we might as well make it a component of its own as they really are two completely separate pieces of styling.

Sure!
Can you tell me why I cannot use $primary-low in the theme component? It’s used all over the place in core (e.g. as the background color of buttons), and I think it’s a good color for the darkened rows, but it’s undefined:

Error: Undefined variable: "$primary-low".
        on line 2 of theme_field.scss
>>     background-color: $primary-low;
   ----------------------^

I’ve run into the same problem. What solved it for me was adding this at the top:

@import "common/foundation/variables";

And then you can use those colors.

That’s the short story, the long story is here:

That did it, thanks :heart:

Here you go:

Why not :zebra: stripes? I guess :tiger: stripes are less
 black and white?

Sorry, I don’t follow. Can you elaborate? :laughing:

Como vocĂȘ faria isso em uma pĂĄgina de detalhes de tĂłpico para respostas alternadas?

Isso Ă© um pouco mais complicado. VocĂȘ pode tentar aplicar o mesmo princĂ­pio Ă  classe post-stream, mas ela nĂŁo contĂ©m apenas respostas, mas tambĂ©m “lacunas”, como o 2 anos depois acima da sua postagem, entĂŁo elas tambĂ©m contam e podem ser afetadas.

Qual seria a melhor forma de implementar isso com cores diferentes dependendo se o tema claro ou escuro estĂĄ em uso?

Este tĂłpico pode responder Ă  sua pergunta :slight_smile: :

Existem pelo menos dois métodos que funcionam:

  • Use cores diferentes para temas diferentes.
  • Sombreie linhas com um cinza mĂ©dio translĂșcido, para que funcione em fundos claros e escuros. Por exemplo, dĂȘ Ă s linhas nth-child(odd) uma cor como background: #80808040;.

Se ajudar, publiquei um substituto de folha de estilo que demonstra o primeiro método
 definindo cores por tema. Para detalhes, procure em style.css por quaisquer partes que contenham nth-child.

Aqui estĂĄ um exemplo de como fica em um tema claro:


 e cada tema tem suas prĂłprias definiçÔes de cores, para que as linhas da tabela se ajustem a cada tema.