Основы создания стилей компонентов

У всех встроенных компонентов сайтов одинаковая структура класса CSS.

Каждый компонент имеет следующие три класса CSS, примененные к крайнему элементу <div>:

 scs-component scs-type design-style

type — это тип компонента (например, image, gallery или divider). design-style — это выбранный класс стиля компонента, как определено в файле темы.

Основы стилей темы

В файле design.json темы перечисляются все стили (frame, shadow, highlighted и т. д.), которые можно применить к компонентам всех типов (таким как button или image). У каждого стиля есть display name и class name. Отображаемое имя отображается на вкладке Стиль панели Настройки. Имя класса указывает на селектор CSS в файле design.css темы. Например, запись для компонента button выглядит следующим образом:

"scs-button": {
         "styles": [{
                          "name": "COMP_STYLE_ALTA_SMALL",
                          "class": "scs-button-default-style"
                          },
                    {
                          "name": "COMP_STYLE_ALTA_LARGE",
                          "class": "scs-button-style-2"
                          },
                    {
                          "name": "COMP_STYLE_SIMPLE",
                          "class": "scs-button-style-3"
                          }
                    ]
},

Имена встроенных компонентов переводятся, поэтому отображается ключ для получения имени стиля из пакета ресурсов. Если добавить на страницу компонент button, а затем выбрать Простой стиль на панели Настройки > Стиль, файл design.json связывает отображаемое имя Простой (ключ COMP_STYLE_SIMPLE) с именем класса scs-button-style-3. Элемент button визуализируется со следующими классами:

scs-component scs-button scs-button-style-3

Если для заданного компонента стиль не выбран, используется стиль по умолчанию scs-type-default-style. В предыдущем примере кнопка визуализируется со следующими классами:

scs-component scs-button scs-button-default-style 

Стиль scs-component-content

Для каждого встроенного компонента, в элементе scs-component <div>, упомянутом ранее, существует элемент <div> с CSS-классом scs-component-content. Другими словами:

scs-component scs-type design-style
scs-component-content

В файле design.css класс scs-component-content часто используется для стилизации "рамки" вокруг компонента (например, для применения границы или тени).

Следует отметить, что во встроенном файле comp.css общий класс scs-component-content определяется со свойствами position:relative и display:inline-block помимо других свойств CSS .

Хотя стиль scs-component-content полезен для стилизации "рамки" вокруг каждого компонента, для полного определения стиля компонента необходимы классы, характерные от компонента. См. Стили для компонентов.