Child pages
  • Styling your Applications
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

Servoy supports the use of HTML cascading style sheets (CSS 3.0) for styling the applications. In order to allow a more powerful way to interact with CSS syntax Servoy also the Less files compiler.

In This Chapter

CSS Overview

CSS is a plain text file that contains the style that is applied to every form of an application and to every component that can be shown inside it.

CSS file sample
.svy-field
{
	background-color:#f0f0f0; 
	border-style: solid;
	border-width: 1px 1px 1px 1px;
	border-color: #cccccc;
	font-family: Verdana, sans-serif;
	font-size: 8pt;
	color: #333;
	text-align: left; 
	margin: 2px; 
	font-weight: normal;
}
.svy-form
{
	background-color: #ffffff; 
	border-style: none; 
}
.svy-label
{
	font-family: Verdana, sans-serif;
	font-weight: bold;
	font-size: 7pt;
	color: #666666;
    text-align: left;
}

The CSS text file is stored in the solution's media node. 

Benefits of using CSS in Servoy include:

  • Adds to the consistency of the user interface; form elements across the application can use the same styles.
  • Gives the developer to make style changes over many/all forms by changing a single value in the CSS.
  • Style sheets can be used over multiple applications, adding consistency to the all the company's applications.
  • Adds consistency to an application in team development, making it easier for development teams to use the same styling on all forms.
  • Style sheets can be changed programmatically, allowing a developer to change styles to different users' taste or to have periodic style changes in their applications. See overrideStyle function for more details.

Less Overview

Less (stands for Leaner Style Sheets) is a backwards-compatible language extension for CSS that that helps you write .css that is more dynamic. It supports variables and other helpful concepts. In Servoy Developer the .less file will compile  into an actual .css automatically. For a detailed documentation about Less language see the Official Documentation for Less.

Because Less looks just like CSS, learning it is a breeze. Less only makes a few convenient additions to the CSS language, which is one of the reasons it can be learned so quickly and is the suggested approach for a smart, consistent and modern application styling.

Custom less/css sample
// import of the custom servoy theme properties that will import the hidden servoy theme, this imported file is for customizing the default servoy theme properties 
@import 'custom_servoy_theme_properties.less';

// Add your custom less/css to this file you can use the same less properties that are specified in the above properties.less 
.pitc-bkg-blue
{
   background-color: #95c0cb;
}
.pitc-txt-default
{
   font-weight: normal;
   font-size: 12pt;
   color:#000000;
   margin: 2px 2px 2px 2px;
   padding: 0px 0px 0px 0px;  
}
.pitc-txt-default-med:extend(.pitc-txt-default)
{
   font-size: 12pt;  
}
.pitc-txt-default-med-blue:extend(.pitc-txt-default-med)
{
   color:#0000ff;
}

Creating a Style

To create a new Style 

Double click on the StyleSheet field in the Properties panel of the active solution

A window will appear from where a new Style (CSS or Less) can be created, or an existing one selected.

As a stating point a default file will all the classes preloaded will be proposed.


TIP

It is normally easier to work with an existing style. Most of the sample solutions have a style associated with them and these style are imported when the solution is imported into Servoy Developer. You can also create a new style and copy/paste different entries from one style to another.



Right click on the Styles node under the Resources node. Select Create new style from the menu. A window will appear.

  1. Enter the name of the new style. Click Next.
  2. Select to add sample content. Click Finish.
  3. The new css file will appear in an editor view in the center of the Workbench.

Styling NGClient

For styling the ng client see this chapter: Styling in the NGClient

The NGClient utilizes unprocessed CSS (3.0) to do all styling of solutions.

All possible CSS properties can now be used, like:

  • All types of selectors
  • Pseudo-classes

Solution StyleSheet

The stylesheet can be specified at solution level. It has to be stored in the solution's media node; for usage of images from media library inside the .css/.less please use relative URL's.

In the Solution Explorer Tree you can just create a new file (xxxx.css or yyyy.less) in your media folder of your solution, which can then be assigned to the stylesheet property of the solution node.

Working With a Style

To open an existing style sheet:

  1. Click on Styles under the Resources project in the Solution Explorer and do one of the following:
    1. Select the style desired (shown in the Solution Explorer list view) and click on the Open style button in the Solution Explorer list view toolbar.
    2. Double click the style desired.
    3. Right click on the style desired and select Open style from the menu.
  2. The style will open in the center of the Workspace in an editor view.

Structure of the Style Sheet

A style sheet for Servoy has basic style definitions and style definition classes.

The style definitions for Servoy are as follows:

  • form
  • label
  • button
  • field
  • check
  • radio
  • combobox
  • tabpanel
  • portal

Under any of these style definitions, the developer can create many style definition classes. For example, the label style definition could have the style definition classes label.title, label.small, and label.bold.

Each definition and definition class can have one or many properties associated with it. Properties specified within the style definition are inherited(cascaded) to any style definition class under it. Study the example below

label {
	color: #ffffff;
	border-style: solid;
	font: bold 10pt Verdana;
}

label.mytext {
	color: red;
	vertical-align: middle;
	border-width: 1px 1px 1px 1px;
	border-color: #111111 #111111 #111111 #111111;
	margin: 2px 2px 2px 2px;
} 

Notice that the border style and font are not modified in the mytext class. This means if a label were specified to use mytext for its style, it would be bold, 10pt, Verdana because that is what is specified in the parent style definition. The color would be red (not black) because that was overridden by the mytext definition class.

Using Styles in Forms

In order to use a style sheet, the style sheet must be applied to a form. Solutions do not have a style sheet applied, only forms. Styles for the elements on a form are dependent on the style sheet applied to the form.

Setting the Style in the Form

A style can be applied to a form in one of two ways.

  • During form creation - The option to set a style for a form is available in the New Form Wizard. See Creating Forms for more details.
  • On the Form Properties view - Change the styleName property to the desired style sheet name.

TIP

If you are creating forms, the style sheet selected for the first form will be automatically selected in the New Form Wizard for subsequent forms. If you happen to not enter a style sheet in the wizard, but would like to apply a style sheet to many forms, just multiple select the forms in the Solution Explorer and edit the Properties view. This will change the property on all the forms you have selected.

Setting Styles to Form Elements

Any elements on a form with a style applied AND have a style definition entered for the element type will take the styling from the style definition entry.  For example, if I am using the style test, and there is a label entry in the test style sheet, then ANY label placed on the form will take the label style from the style sheet. 

To use something other than the default style for any given element, change the styleClass entry in the Properties view for that element. To do this:

  1. Select the desired element.
  2. In the Properties view, find the property styleClass.
  3. When clicking in the field, a drop down list will appear with all the available style classes for the element.  This list is contextual for the element (meaning you will only see label style classes if the element is a label, field classes if the element is a field, and so on.)
  4. Select the desired class from the list.
  5. If you want to go back to the default style definition, select DEFAULT.





  • No labels