コンポーネントのスタイル・クラス

ユーザーがあなたのコンポーネントに適用できるスタイルの定義済リストを作成できます。

コンポーネントの事前定義済スタイル・リストを作成する作業では、テーマのデザイン・ファイルを介してOracle Content Managementによって提供されるコンポーネントのスタイル・クラスを定義する場合と同じモデルを採用します。カスタム・スタイル・クラスの名前は、コンポーネントのappinfo.jsonファイルに記載します。

追加スタイルは、design.cssおよびdesign.jsonファイルに定義します。jsonファイルは、ユーザー・インタフェースに表示される名前から実際に基礎となるcssクラス名へのマッピングを提供し、cssファイルは、各スタイル・クラスの詳細を提供します。

design.jsonファイルには、コンポーネントの次の構造があります:

{
    "componentStyles": {
        "scs-image": {
            "styles": []
        },
        "scs-map": {
            "styles": []
        },
        "scs-title": {
            "styles": []
        },
        "scs-paragraph": {
            "styles": []
        },
        "scs-txt": {
            "styles": []
        },
        "scs-divider": {
            "styles": []
        },
        "scs-button": {
            "styles": []
        },
        "scs-app": {
            "styles": []
        },
        "scs-spacer": {
        },
        "scs-gallery": {
            "styles": []
        },
        "scs-youtube": {
            "styles": []
        },
        "scs-socialbar": {
            "styles": []
        },
        "scs-document": {
            "styles": []
        }
    }
}

"styles":[]の各エントリには、特定のコンポーネントのスタイルのリストが含まれます。"name"は、組込みローカライズ文字列への参照である場合、または使用対象の指定値である場合があります。たとえば、タイトル・コンポーネントには、次のデフォルトのスタイルが用意されています:

{    
    "styles": [{
                    "name": "COMP_STYLE_FLAT",
                    "class": "scs-title-default-style"
               },
               {
                     "name": "COMP_STYLE_HIGHLIGHT",
                     "class": "scs-title-style-2"
               },
               {
                     "name": "COMP_STYLE_DIVIDER",
                     "class": "scs-title-style-3"
               }
]
}

名前値は、次のように、ユーザー・インタフェースに表示する実際の単語にマップされます:

    "COMP_STYLE_FLAT": "Flat",
    "COMP_STYLE_HIGHLIGHT": "Highlight",
    "COMP_STYLE_DIVIDER": "Divider",

cssファイルは、クラス値の定義を提供します:

    .scs-title-default-style {
      color: #333333;
      display: block;
      font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
      font-size: 24px;
      font-weight: normal;
                             }

例として、テーマのdesign.jsonファイルには、components.jsonファイルに定義するinitialData.compomentId値に基づいてコンポーネントのエントリを追加できます:

"componentId": "news-article"

design.jsonファイル内の対応するエントリは、次のようになります:

"componentStyles": {
        "news-article": {
                "styles": [{
                          "name": "News Article 1",
                          "class": "news-article-default-style"
                  },
                  {
                          "name": "News Article 2",
                          "class": "news-article-style-1"
                  }]
        },

design.cssファイル内の対応するエントリは、次のようになります:

.news-article-default-style .scs-image {…}
.news-article-style-1 .scs-image {…}