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:

13 « J'aime »

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; }

6 « J'aime »

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

6 « J'aime »

@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.

8 « J'aime »

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;
   ----------------------^
4 « J'aime »

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:

8 « J'aime »

That did it, thanks :heart:

Here you go:

https://github.com/fefrei/discourse-tiger-stripes

9 « J'aime »

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

1 « J'aime »

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

8 « J'aime »

How would you do this on a topic detail page for alternating replies?

That it somewhat more involved. You can try applying the same principle to the post-stream class, but this not only contains replies, but also “gaps”, like the 2 years later above your post, so they also count and may be affected.

1 « J'aime »

Quelle serait la meilleure façon de l’implémenter avec différentes couleurs en fonction de l’utilisation du thème clair ou sombre ?

1 « J'aime »

Ce sujet pourrait répondre à votre question :slight_smile: :

3 « J'aime »

Il existe au moins deux méthodes qui fonctionnent :

  • Utiliser des couleurs différentes pour des thèmes différents.
  • Ombrer les lignes avec un gris moyen translucide, de sorte qu’il fonctionne sur des arrière-plans clairs et sombres. Par exemple, donner aux lignes nth-child(odd) une couleur comme background: #80808040;.

Si cela peut aider, j’ai publié un remplacement de feuille de style qui démontre la première méthode… en définissant les couleurs par thème. Pour plus de détails, recherchez dans style.css toutes les parties contenant nth-child.

Voici un exemple de ce à quoi cela ressemble dans un thème clair :

… et chaque thème a ses propres définitions de couleurs, de sorte que les lignes du tableau s’adaptent à chaque thème.

1 « J'aime »