Você pode criar uma lista definida de estilos que possam ser aplicados a seu componente pelos usuários.
Ter uma lista predefinida de estilos para seu componente equivale a definir classes de estilo para os componentes fornecidos pelo Oracle Content Management por meio de arquivos de design de um tema. Você dá nomes a suas classes de estilo personalizadas no arquivo appinfo.json
do componente.
Defina estilos adicionais nos arquivos design.css
e design.json
. O arquivo json
fornece um mapeamento do nome que aparecerá na interface do usuário para o nome da classe css
subjacente real e o arquivo css
fornece os detalhes de cada classe de estilo.
O arquivo design.json
tem a seguinte estrutura para componentes:
{ "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": [] } } }
Cada entrada "styles":[]
pode conter uma lista de estilos para esse componente específico. A entrada "name"
pode ser uma referência a uma string interna localizada ou a um valor especificado para uso. Por exemplo, o componente Título fornece estes estilos padrão:
{ "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" } ] }
Os valores de nomes são mapeados para as palavras reais a serem exibidas na interface do usuário, com esta:
"COMP_STYLE_FLAT": "Flat", "COMP_STYLE_HIGHLIGHT": "Highlight", "COMP_STYLE_DIVIDER": "Divider",
O arquivo css
fornece as definições dos valores das classes:
.scs-title-default-style { color: #333333; display: block; font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; font-size: 24px; font-weight: normal; }
Como exemplo, no arquivo design.json
do tema, você pode adicionar entradas para seu componente com base no valor initialData.compomentId
que você define no arquivo components.json
:
"componentId": "news-article"
As entradas correspondentes no arquivo design.json
seriam estas:
"componentStyles": {
"news-article": {
"styles": [{
"name": "News Article 1",
"class": "news-article-default-style"
},
{
"name": "News Article 2",
"class": "news-article-style-1"
}]
},
As entradas correspondentes no arquivo design.css
seriam estas:
.news-article-default-style .scs-image {…} .news-article-style-1 .scs-image {…}