Alternative Voting Category Style

This theme component offers alternative styling for any specified categories that make use of the Discourse Voting plugin.

Installation

Repository Link
https://github.com/discourse/discourse-alternative-voting-category-style

If you are unfamiliar with theme components and how to install them, check out the theme installation guide. And if you’d like to learn more about Discourse themes, take a look at this guide.

Preview

The overall idea is based off of this mockup created by @erlend_sh.

Notable Features

  • Compact view
  • More prominent vote count
  • Colored icon to indicate that you voted on the topic

Settings

There is currently one setting use to specify which categories to apply the style:

Extra Customizations

If you want to customize the look of specific tags within your voting topic (see the “IN PROGRESS” tag in the preview image above), you can create an additional component and modify the following CSS to fit your needs

.voting-category.list-container {
    .topic-list-item:not(.about-topic) {
        // Common styling for all listed tags
        [data-tag-name="in-progress"],
        [data-tag-name="my-tag-one"],
        [data-tag-name="my-tag-two"] {
            font-weight: bold;
            text-transform: uppercase;
            font-family: Trebuchet MS;
        }
        // Specific styling for individual tags
        [data-tag-name="in-progress"] {
            color: #9e63d0;
        }
        [data-tag-name="my-tag-one"] {
            color: #5bd04a;
        }
        [data-tag-name="my-tag-two"] {
            color: #5f5dd0;
        }
    }
}

Future

The one thing that you may notice missing from the original mockup is an excerpt of the topic under the topic title. This feature would require changes to core or the voting plugin that will need to wait for now.

As always, please let me know if you experience any issues.

Big thanks @simon and @erlend_sh for working with me on this :heart_eyes:

37 إعجابًا

Great theme component! One thing I found was that the unlisted icon is not fitting into your design. The topic title is overlapping it.

03%20AM

8 إعجابات

Thanks for the quick feedback! I will try to get that fixed a little later today :slightly_smiling_face:

Edit: @Sean_R I just pushed a quick fix. I may try to tinker with it a little more to get it even better, but there shouldn’t be any more overlap!

6 إعجابات

Looks good now

image

I also had to change the CSS to make the topic list wider.

Was

.voting-category.list-container {
  max-width: $small-width;

Changed to

.voting-category.list-container {
  max-width: $large-width;
6 إعجابات

Thanks for confirming that is fixed!

The smaller width was based on the original design. The rationale was that there was so little information displayed on each topic row that it would look odd at full width. I can imagine some people might feel the opposite - that the smaller width looks odd. A width option to toggle via a theme setting would be an easy addition. I’ll add that to my to-do list with this.

5 إعجابات

This component has been updated! The changes include:

  • Support for font awesome changes
  • Additional setting to toggle between small-width and large-width
6 إعجابات

Does this component still work?

I use an instance of free.discourse.group and am looking for an alternative for the Discourse Vote Plugin

The component still works, but it is meant to be used alongside the voting plugin, not instead. It only provides an alternative style option for the voting plugin.

3 إعجابات

Ah, now I get it, thanks for your attention :hugs:

3 إعجابات

Is somebody still actively using this? Tried it with the current Version of the voting Plugin (0.5), looks pretty good, but doesn’t seem to be functional anymore - at least in our instance.

Can you elaborate on what isn’t functioning? I just tested it out and everything seems to be working. Noting that this component is purely styling right now. You aren’t able to vote directly from the topic list.

إعجابَين (2)

thanks for the immediate reply!!!

First

Noting that this component is purely styling right now. You aren’t able to vote directly from the topic list.

Ok, I did not realise that. I thought it would actually allow exactly that: Voting from the topic list. Good to know. Need to reevaluate then.

Second
It does not seem to show the actual data/votes. Two pictures here: one with the style activated and one deactivated.


I suspected a conflict with the theme used, but even using another one, it does not seem to solve the issue.

إعجاب واحد (1)

Hmm I just tested it on an up-to-date site and I’m not having any issues with the vote count or “I voted” indicator:

Can you check to see if there are any errors in your browser’s console? Have you tried with a brand new default theme with no other components or customizations added?

إعجابَين (2)

You should be able to add a CSS rule to a theme/component to fix this up. I don’t have the Ratings plugin installed to test this, but I think it should be something like:

.rating-list {
  margin-left: 65px;
}

I’m actually doing some work on this component right now (it hadn’t been touched in a long time!), so I’ll see if I can make it so that any custom topic list content is positioned correctly by default.

3 إعجابات

Perfect, thank you :ok_hand:

إعجاب واحد (1)

لقد قمت بتثبيت مكون السمة هذا وتم تمكينه في فئتين. تبدو إحداهما بها خلل، وتبدو الأخرى جيدة. الفرق هو أن اسم الفئة يظهر في القائمة، ويتداخل مع عدد الأصوات. الفرق الوحيد الذي يمكنني التفكير فيه هو أن الفئة التي بها الخلل لديها فئات فرعية، بينما الأخرى ليس لديها.\n\nبها خلل، ولديها فئات فرعية:\n

\n\nجيدة، بدون فئات فرعية:\n\n\nفي حال كان ذلك مفيدًا، هذه هي السمة الافتراضية مع لوحة ألوان Grey Amber.

إعجاب واحد (1)

شكراً على التقرير! إذا قمت بتحديث المكون، يجب أن تحصل على الإصلاح التالي:

4 إعجابات

شكراً جزيلاً على هذه الاستجابة فائقة السرعة! الإصلاح يعمل.

ملاحظة: يرجى إضافة وسم #voting، فهذه المكونات جيدة جدًا لدرجة أنه لا ينبغي إخفاؤها. :slight_smile:

3 إعجابات

هل يوجد مكون سمة يجعل مؤشر التصويت على المواضيع الفردية بنفس المظهر؟

إعجاب واحد (1)

يقوم هذا المكون أيضًا بإخفاء الأعمدة التي تعرض المشاركين والمشاهدات ووقت النشاط. قد يكون من الجيد فصل ذلك، بحيث يمكن للمرء تمكين تغيير نمط التصويت بسهولة دون إخفاء تلك أيضًا؟

أو - انقل

  .posters,
  .views,
  .activity {
    display: none;
  }

إلى داخل @if $use_compact_width == \"true\" {
؟

إعجابَين (2)