🔖

WixStudioでVeloを使う Step 36 「コレクションの色フィールドの活用」

2025/02/26に公開

はじめに

今回はWixStudioのCMSに注目する。CMSはいわゆるデータベースの仕組み。サイトで扱う記事や商品、会員の情報などのデータをテーマ毎に一定のルールに従って管理することができる。CMSはテーマ毎にデータをまとめて管理することになるが、テーマ毎にまとめられたデータ群をコレクションと呼んでいるぽい。

そんなCMSのコレクションには、新しいフィールドとしてが登場した。

新しいフィールド「色」
新しいフィールド「色」

この色フィールドについて考えていきたい。

目的

CMSのコレクションで使える新しいフィールドタイプ「」の活用について検討する。

準備

新しくサイトを作成しCMSやVeloを有効にしておく。

Productsコレクションの作成

まずはコレクションを作成する。コレクションはAIで作成する。今回はProductsコレクションとして商品情報を管理するようなコレクションを作成する。

AIでコレクションを作成
AIでコレクションを作成

Productsコレクションの概要を入力
Productsコレクションの概要を入力

コレクションの名前 コレクションの説明文を追加
Products 商品情報を管理するコレクション。商品名と商品コードと商品画像と単価と説明を管理する項目が必要

AIが提案してくれたProductsコレクションの構造
AIが提案してくれたProductsコレクションの構造

提案された内容に問題がなければコレクションを作成する。

AIによって生成されたProductsコレクション
AIによって生成されたProductsコレクション

最後に色フィールドを追加するがそれは後ほど。

動的ページの作成

色の検証をするためにはページが無いとダメなのでProductsコレクションと連動する動的ページを作成する。

動的ページを作成する
動的ページを作成する

今回の検証ではリストページだけあれば十分だけど、アイテムページも一緒に作成しておく。

リストページとアイテムページを作成する
リストページとアイテムページを作成する

両方まとめて選択しておけば、リストページからアイテムページへの遷移も設定された状態になるのでこれも便利。

リストページからアイテムページへの遷移が設定済み
リストページからアイテムページへの遷移が設定済み

以上で準備完了。

色フィールド

Productsコレクションを開きフィールドを追加する。フィールドタイプとして「色」が選択出来る。
色フィールド
色フィールド

フィールド名などは適当に指定。今回はデフォルトのまま。

フィールドの設定
フィールドの設定

設定を完了すれば色フィールドが追加される。

色フィールドが追加される
色フィールドが追加される

色フィールドにフォーカスすると色を選択できるようになる。

色を選択
色を選択

色を選択すると、選択した色のサンプルとそのカラーコードがフィールドに表示される。フィールドの値としてはカラーコード

フィールドの値はカラーコード
フィールドの値はカラーコード

今回は1商品のみ色を指定する。商品名はSmartphone。

選択した色を表示で使う

色フィールドに選択した色をページ上で活用する。
ページに配置されたCMSに接続された要素を選択すると文字や背景や線の色がフィールドと接続できるようになっている。

要素の色とフィールドを接続できる
要素の色とフィールドを接続できる

色フィールドを接続すれば、該当する色フィールドに指定された色が表示に反映される。

色フィールドの指定した色が反映される
色フィールドの指定した色が反映される

今回は1商品(Smartphone)にのみ色を指定している。

ここで繰り返しになるがポイントはCMSに接続された要素という点。逆を言えばCMSに接続できない要素の色に対してはこの機能を使うことが出来ないということ。

例えば、box要素stack要素はCMSと接続できないため、背景色などを色フィールドと接続することが出来ない。

box要素やstack要素は色フィールドと接続が出来ない
box要素やstack要素は色フィールドと接続が出来ない

Veloをつかう

色フィールドが使えれば表現の幅が拡がる。ただCMSに接続された要素にしか適用することが出来ないという点は引っかかる。しかし、Veloを使うと少し適用範囲を広げることができる。

例えば、box要素やstack要素はレイアウトに欠かせない要素。これらの要素の背景や枠線の色が色フィールドで接続できると便利。この程度ならVeloで容易に実現することができる。

背景色フィールドを作成する

Productsコレクションに新しく色フィールドを作成する。フィールドの細かい設定は以下の通り。

背景色フィールドを追加
背景色フィールドを追加

フィールド名 フィールドID
背景色 backgroundColor

一つ色を指定してみる。今回はLaptopに背景色を指定する。

Laptopに背景色を指定
Laptopに背景色を指定

背景色を指定する要素

背景色を指定する要素はリピータの各要素を包括するbox要素の#box2を対象にする。

リピータの各要素を包括する
リピータの各要素を包括する#box2

IDは任意のものに変えておいた方が良いが、今回はこのまま。

ちなみに、リピータのIDは#repeater1

リピータのIDは
リピータのIDは#repeater1

Scriptを書く

比較的簡単なスクリプトで実現出来る。

Products(List)
$w.onReady(function () {

  $w('#repeater1').onItemReady( ($item, itemData, index) => {
    $item('#box2').style.backgroundColor = itemData.backgroundColor;
  })

});

スクリプト中程の$item('#box2').style.backgroundColor = itemData.backgroundColor;がポイント。$item('#box2')でリピータの各要素の#box2を選択し#box2style.backgroundColoritemData.backgroundColorとする。この時style.backgroundColor要素の背景色を指し、itemData.backgroundColorコレクションの背景色フィールドで指定した色を指す。

$w('#repeater1').onItemReady( ($item, itemData, index) => {...})#repeater1の各要素に対して{...}の処理をする際の定型文だと捉えていい。

このコードをページコードに記載しプレビューを実行する。

スクリプト
スクリプト

https://dev.wix.com/docs/velo/velo-only-apis/$w/box/style

動作確認

Veloで指定した背景色はプレビューを実行しないと確認することが出来ない。プレビューを確認するとLaptopの背景色が変化していることがわかる。

プレビュー:Laptopの背景色が変化する
プレビュー:Laptopの背景色が変化する

まとめ

CMSのコレクションに色フィールドが追加されて表現の幅が拡がった。ただ、まだ追加されて間もないため標準機能だけでは適用範囲に制限があるように感じる。今後のアップデートに注目しておく。
また、色フィールドの活用方法は工夫すればサイトを効率良くデザインすることができるようになると思う。この点については次回以降の記事で触れることにする。

つづき

https://zenn.dev/niibori/articles/veloonwixstudio-beginner-0037

Discussion