Sass 변수가 코드에서 읽히지 않음

안녕하세요,

테마에 설정을 더 추가하기 시작하면서 Discourse가 해당 설정들을 무시하고 있다는 점이 드러나기 시작했습니다.

코드:


#main-outlet-wrapper .sidebar-wrapper {
  @if $Full_Width == true {
    left: 10px;
  }
}

@if $Full_Width == true {
  :root {
    --d-max-width: 95%;
  }
  #main-outlet {
    max-width: 90%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 5px;
    margin-bottom: 50px;
  }
}

이 코드는 설정 값이 무엇이든 아무런 효과가 없습니다.

그러나 == true를 제거하면 항상 활성화됩니다.

이것이 다른 boolean 타입 설정에서도 발생하는 문제인 것 같습니다. Sass 문서를 읽어 보았는데 제 코드는 문서와 일치하는데도 여전히 작동하지 않습니다.


div#main-outlet.wrap.not-found-container,
#main-outlet-wrapper {

  #main-outlet,
  .sidebar-wrapper {
    @if $Is_Background_Blurred {
      backdrop-filter: blur(3rem) !important;
      background-color: #0a0a0aa6 !important;

      input[type],
      .select-kit.combo-box .select-kit-header,
      .d-editor-textarea-wrapper,
      div.ac-wrap {
        background: transparent;
      }
    }

    @else {
      backdrop-filter: none !important;
      background-color: var(--secondary) !important;

      input[type],
      .select-kit.combo-box .select-kit-header,
      .d-editor-textarea-wrapper,
      div.ac-wrap {
        background: transparent;
      }
    }
  }
}

도움 주시면 감사하겠습니다.

몇 주 전에 동일한 문제를 겪었고, if SASS 조건문이 내가 생각했던 대로 작동하지 않는다는 결론을 내렸습니다. 하지만 이런 일이 가능한지 알 수 있다면 매우 기쁠 것입니다:

SASS 파일에서 "이 site_setting == 값이면"이라는 조건을 사용하는 것 말입니다.

혹시 도움이 될 수 있을까 해서 여기에 공유합니다:

글을 올리기 전에 해당 문서를 확인해 보았는데, 제 코드는 그 내용과 정확히 동일합니다.

@if $var {}는 값과 관계없이 항상 실행되며, @if $var == true {}는 절대 실행되지 않습니다.

아래를 시도해 보셨나요:

@if $var == "true"

부울 값이 실제로는 문자열일 수 있습니다. 이전에 테마 컴포넌트에서 이런 문제를 겪어 본 적이 있습니다.

응, 고쳐진 것 같은데, 이상하네.

대단하네요, 둘 다 제 테마 컴포넌트 중 하나에서 포기했던 문제를 해결하는 데 도움을 주셨어요. :v:

최근에 논의했던 다크 테마 전환 문제를 해결할 수 있을 것 같습니다. 감사합니다.

기존에는 제대로 작동하지 않았습니다.

그렇게 해서, 크리스는 온 마을 사람들을 도울 수 있었습니다.