設定内の可変幅を持つテーマ

Hallo!

I’ve made a theme (css only) with a variable width.
Now I think about to share it, but not every one wants the variable width. So my consideration was to use variables to set the width inside the theme settings.
I know I need a settings.yamlwith e.g. this code:

composer width:
  default: 1110
  type: integer
  description: "Set the width of the composer"

header width:
  default: 1110
  type: integer
  description: "Set the width of the header"
 

Now I’m not a specialist with CSS so I don’t know how to use these variables inside of SCSS.
Do I need a function for these settings?
Can someone give me an example on how to set the value for the header for example?

Thank you!

In the CSS you can use something like this
#{$header_width} .

Check this topic:

「いいね!」 1

Thank you for the link!

Is it really that easy!? :+1:

So, one more question.
As width you can set px or %, so my variables need to be a string as data type?
But how can I prevent such inputs like 1100 apples?

I have a better idea with int and enum!

Thank you!

こんにちは!

テーマに設定を追加したいのですが、いくつか質問があります。

背景画像として画像をアップロードする設定や、背景に関連するその他の設定があるため、welcome-banner コンポーネントを調べました。

banner_background_image:
  type: upload
  default: ""

banner_background_repeat:
  type: enum
  default: no-repeat
  choices:
    - no-repeat
    - repeat
    - repeat-x
    - repeat-y

banner_background_size:
  type: string
  default: cover
  description: uses ..... CSS background size property</a>

CSS ファイルには次のように記載されています。

.welcome-link-banner-wrapper {
    background-color: #{$banner-background-color};
    background-image: url(#{$banner-background-image});
    background-size: #{$banner-background-size};
    background-repeat: #{$banner-background-repeat};
    background-position: center center;
  }

今、気になるのは、他のコンポーネントで $ が使われているのに、# が使われていることです。
なので、何を使うべきでしょうか?それともどちらでも構いませんか?

CSS に関してもう一つ質問がありますが、まずは上記の質問を解決したいと思います。
もちろん試すこともできますが、どちらが正しいか確信したいです。

#{...} はSCSSの補間です。

共有された例のいくつかにそれが必要なのは、すべてのテーマ設定が「文字列」変数であるためだと推測します。補間により、通常は特定の変数型を必要とする場所でそれらの文字列を使用できます。ただし、多くの場合、単に$variableで済む可能性があります。

「いいね!」 2

Ok、わかりました。
もしユーザーに16進数ではなくRGBで背景色を使用するように強制し、CSSファイルに「#」をハードコーディングした場合、$を使用できるということですね。

「いいね!」 1