커스텀 Discourse 리액션

안녕하세요,

Discourse Reactions 플러그인에 대해 CSS를 수정했습니다. 이제 Facebook의 리액션 버튼과 매우 유사한 모습을 하고 있습니다.

기본 리액션인 :heart: 을 포함하여 총 6개의 리액션 버튼입니다.

COMMON / SCSS
아래 코드를 common - css 섹션에 배치하세요.
중요 공지: content: 'Love it!', content: 'Beautiful' 등의 줄을 편집하여 라벨 위의 이모지를 수정할 수 있습니다. 물론 원하는 리액션을 자유롭게 사용할 수 있습니다. 이는 단순히 리액션 위에 표시되는 라벨일 뿐입니다.

.discourse-reactions-picker {
  .discourse-reactions-picker-container {
    width: 330px;
    height: 50px;
    max-width: calc(100vw - 2em);
    border: 1px solid var(--primary-low) !important;
    border-radius: 50px;
    .pickable-reaction {
      max-width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
    }
  }
  .pickable-reaction {
    background: transparent !important;
    .emoji {
      height: 40px;
      width: 40px;
      padding: 0 !important;
      transform: scale(0.9);
    }
    &.is-used {
      transform: scale(1.3);
      transform-origin: bottom;
      border: none !important;
    }
    &:hover {
      transform-origin: bottom;
    }
    &:hover:after {
      position: absolute;
      font-size: 10px;
      top: -15px;
      background: var(--secondary-low);
      color: var(--secondary);
      padding: 2px 5px;
      border-radius: 20px;
    }
    &:first-child {
      &:hover:after {
        content: 'Love it!';
      }
    }
    &:nth-child(2) {
      &:hover:after {
        content: 'Beautiful';
      }
    }
    &:nth-child(3) {
      &:hover:after {
        content: 'Hug';
      }
    }
    &:nth-child(4) {
      &:hover:after {
        content: 'Congrats!!';
      }
    }
    &:nth-child(5) {
      &:hover:after {
        content: 'Hmm...';
      }
    }
    &:nth-child(6) {
      &:hover:after {
        content: 'Wooow!';
      }
    }
  }
}

react-buttons


모바일

모바일에서는 리액션 피커의 위치를 position fixed로 설정했습니다.

이것은 이러한 이상한 동작을 방지하는 가능한 방법입니다. :arrow_down:
raction-no-fixed

이렇게 보입니다 :arrow_down:
reactions-fixed

리액션 피커에서 발생했던 것과 마찬가지로 모바일의 상태 패널에서도 동일한 문제가 발생하여, 이 또한 position fixed를 사용했습니다.

Mobile / SCSS

.discourse-reactions-picker {
  position: fixed;
  .pickable-reaction {
    &:hover:after {
      font-size: 12px;
      top: -8px;
    }
    &.is-used {
      &:hover:after {
        transform: scale(0.8);
        top: -15px;
      }
    }
  }
}

.discourse-reactions-state-panel {
  position: fixed;
}

기본 좋아요 표시 섹션 숨기기

COMMON / CSS

Reactions State Panel에서도 해당 정보가 표시되므로, 기본 ‘누가 좋아요를 눌렀는지’ 섹션을 숨겼습니다.

.who-liked {
  display: none;
}
25개의 좋아요

정말 많이 좋아해요 :love_you_gesture: …

5개의 좋아요

정말 멋진데, 아주 잘 작동합니다. 공유해 주셔서 감사합니다.
:clinking_beer_mugs::smiling_face_with_sunglasses::+1::sparkles:

4개의 좋아요

설치해 두고 정말 마음에 들어요.

질문 하나:

그 검은색 호버를 제거할 수 있을까요?

2개의 좋아요

Paulina님, 안녕하세요!

좋아해 주셔서 정말 기쁩니다 :heart: 감사합니다!

다크 모드에서 마우스를 올렸을 때 나타나는 사용자 목록 패널을 숨기려면 아래 코드를 사용하세요 :slightly_smiling_face:

.discourse-reactions-list .reactions .user-list {
  display: none;
}
4개의 좋아요

나한테는 잘 작동했어요! 디자인이 정말 마음에 들어요. 정말 감사합니다. :heart:

2개의 좋아요

Don님, 안녕하세요!

커스터마이징이 정말 마음에 듭니다. 잘하셨네요! 감사합니다. :heart:
하지만 여전히 질문이 하나 있습니다. 이렇게 검은색 호버 효과를 없애는 방법은 무엇인가요?

Selection_060

3개의 좋아요

네오님, 안녕하세요.

감사합니다 :heart:

불행히도 CSS로 title 속성을 숨기는 것은 불가능하지만, /admin/customize/site_texts에서 js.discourse_reactions.picker.react_with 텍스트를 편집하여 길이를 줄일 수 있습니다.

3개의 좋아요

감사합니다. 이제 완료했고, 훨씬 나아졌어요! :wave:

3개의 좋아요

정말 훌륭합니다, @Don. 정말 감사합니다.

저희 Discourse 환경에서 이 기능을 사용해보려는데, 현재 리액션 옵션이 두 줄로 나뉘어 있습니다(한 줄당 이모지 6개, 총 12개).

CSS는 막힘없이 쓸 정도는 아는데, 제 강점은 아닙니다.

이 코드를 해당 배치 방식에 맞게 조정하는 것이 얼마나 어려울까요?

이렇게 공유해 주셔서 진심으로 감사드립니다(제가 좀 늦게 알아챈 것 같지만요!).

3개의 좋아요

JR님 감사합니다 :slightly_smiling_face: 사용이 더 쉽고 리액션에 잘 맞도록 이걸로 테마 컴포넌트를 만들어보려고 해요. 몇 가지 수정도 추가할 예정이에요. 도움이 되길 바랍니다. 다음 주에 시도해볼게요.

6개의 좋아요

정말 감사합니다, @Don! 그건 정말 놀라운 일이 될 거고, 아주 고마울 만한 보완/추가 자료일 것 같아요. 꼭 지켜보겠습니다.

3개의 좋아요

Happy So Excited GIF

2개의 좋아요

안녕하세요,

이것을 기반으로 테마 컴포넌트를 만들었습니다. 이렇게 하면 더 쉬워질 것 같습니다. :slightly_smiling_face:

@manuel 님이 이전에 만든 테마 컴포넌트 Category List with Banners 덕분에 리액션 라벨에 목록 설정을 쉽게 구현할 수 있었습니다. 감사합니다. :heart:

수정 사항과 몇 가지 설정을 추가했습니다:

  1. reactions_label
    세미콜론 ;으로 구분합니다.
    reaction name;reaction label
    May-29-2022 17-02-05

  2. reactions picker rounding
    리액션 피커(border-radius) 모서리 둥글기. px, em 등을 사용할 수 있습니다.
    기본값은 1em입니다.


    더 둥글게 또는 덜 둥글게 만들고 싶다면 이 설정을 변경하세요.
    이전 버전에서는 2em이었습니다.

  3. state panel rounding
    리액션 상태 패널(border-radius) 모서리 둥글기. px, em 등을 사용할 수 있습니다.

  4. user list rounding
    리액션 사용자 목록(border-radius) 모서리 둥글기. px, em 등을 사용할 수 있습니다.

  5. hide user list heading
    이 옵션은 패널의 사용자 목록 헤더를 숨깁니다. 이미지에서 헤더는 smiley 부분입니다.

  6. hide user list
    이 옵션은 사용자 목록 패널을 숨깁니다. 이는 다크 테마의 호버 패널입니다.

  7. hide who liked
    이 옵션은 기본 ‘누가 좋아했나요’ 섹션을 숨깁니다.

이 컴포넌트에 대해 나중에 추가할 몇 가지 더 계획이 있습니다. :slightly_smiling_face:

17개의 좋아요