Creating Your Own Styles Using Sitecore SXA

Posted 07/17/2019 by Fernando Cacavaio

Today I would like to talk about how to use your own Style in SXA. For those who have never had the opportunity to work with SXA, it is a very powerful tool for creating standardized sets of layouts and components based on recommended practices that can be used across multiple sites.

When we talk about styles in SXA, we first need to start by talking about Themes. Using Themes, you can define the appearance of a site without having to change the site itself or its content.

When you install SXA, you may notice that it already comes with a default Theme, called Wireframe, to help you get started. However, it is possible to create a custom Theme for the site that you are working on. Any new theme that you create will inherit from the default Theme.

By right-clicking the Content node, I created a Tenant and a site called Fernando. (Tenants are a feature of SXA).

Content Tree with Tenant Node expanded

After creating my site, SXA automatically created a folder with the name of my website inside Media Library -> Themes. As stated above, it already comes with Wireframe (default Theme) created.

Content Tree with Themes expanded

SXA will automatically break new themes into folders with necessary scaffolding items. If we open the style folder, we can see the classes that have already been created by the SXA separated by components and functionalities.

Styles folder expanded in content tree

Let's start with a simple example, in which we change the background color of an image. For this, we will open the class corresponding to the image component (later I will show where it does the css link with the component). An easy way is to select the component you want to change (component-image) and search the field Media and download it.

Media field in component style item

I just opened the .css file and created these two simple classes, one to paint the background in black and the other to paint red. After changing, we will click Attach to upload the changed file.

.image-techguildsblack img {

  background-color: black;

}

.image-techguildsred img {

  background-color: red;

}

 

Now comes the coolest part in my opinion, where we make the connection of the class I created with the component.

Let's open our site in Content root and navigate to Presentation / Styles. Here we’ll link our class to our component. Every Component has its own Style item underneath the “Styles” node. In here, right-click the “Image” component to add new Style items.

Style items underneath Component item in content tree

After we create a Style, we have to fill the “Value” field with the proper class name. In the Allowed Renderings, select the components to which the class will apply (here we selected the Image component).

Style section including allowed renderings

After saving everything, lets open our page through the Experience Editor. In the XPE, I just selected Image through the SXA Toolbox, I added an image in the data source and went on to edit the properties of the component.

Inside control properties we go down to Styling. In the Image session we can see the two Styles we created in the previous step.

Control properties window with style slections

After clicking save, our background changes to black.

TechGuilds header black background

Switching to Red in just one click.

TechGuilds Header Red Background

Thanks for reading! I hope my guide on customizing styling with SXA was been helpful!

Add your comment