Child pages
  • FSS Naming Conventions

Documentation for a historical release of Infusion: 1.3
Please view the Infusion Documentation site for the latest documentation.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.

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 37 Next »

About this page

This document will only show the basics in a condensed syntax. It is highly recommended that you review the in-depth walkthroughs and introductions for more information.

Unknown macro: {div}
On This Page

The Basics

Order of CSS files

Please Note the order of the files is still under development.

The order of class names is anything from FSS goes first and your own custom CSS files go last, for example:

<link type="text/css" rel="stylesheet" href="fss-reset-global.css" />
<link type="text/css" rel="stylesheet" href="fss-base-global.css" />
<link type="text/css" rel="stylesheet" href="fss-layout.css" />
<link type="text/css" rel="stylesheet" href="fss-text.css" />
<link type="text/css" rel="stylesheet" href="fss-theme-themeName.css" />
<link type="text/css" rel="stylesheet" href="ComponentName.css" />

<link type="text/css" rel="stylesheet" href="YourStyleSheetGoesHere.css" />

Order of Class names

The order of class names is anything from FSS goes first and your own custom class names goes last, for example:

<div class="fl-container-250 fl-font-size-110 myCustomClass"> </div>

Overriding FSS data

This is intended as a broad overview of changing FSS. All changes should be done in your stylesheet. For a more detailed explanation, please see [Overriding FSS].
To override any FSS you should have a selector that at the very least [matches the specificity of the FSS selector].

An example of over-riding FSS could be when you want to change a columns default width:padding:margin values.
Assuming you have an fl-col-flex3 instance somewhere you want to change. You can do this 2 ways:

  • To change this setup for all fl-col-flex3 instances, change the selector definition itself in your stylesheet (ie. copy and rewrite the .fl-col-flex3 .fl-col rules)
  • To change this setup for just one fl-col-flex3 instances, in your stylesheet you should have a selector that at the very least [matches the specificity of the FSS selector] in your stylesheet, and change the values there.

    A Caveat in Overriding FSS

    In some situations, we have used the !important rule to ensure things behave as intended for [User Interface Options]. You might be required to add this to your new rules as well.

List of class names

Please see the [FSS API] document to view all available FSS CSS convenience class names.


Contains containers, columns, basic layout management, and layout linearization class names. These class names can go on virtually any element.

Example this would make a 250 pixel wide container aligned to the right:

<div class="fl-container-250 fl-force-right">Container</a>

Example this would make 3 flexible width columns of link containers:

<div class="fl-col=flex3">
   <a class="fl-col" href="#">Big Linky column 1</a>
   <a class="fl-col" href="#">Big Linky column 2</a>
   <a class="fl-col" href="#">Big Linky column 3</a>

[Advanced Layouts]

Advanced layout mechanisms (formlery known as Helpers) are CSS class names structured in such a way to lay out widgets, tabs, menus, and other common GUI concepts. These mechanisms make certain best practice and sound markup assumptions (ie. tabs require anchors inside list items).

Example this would make a series of 3 tabs aligned to the right of the page

<ul class="fl-tabs fl-tabs-right">
   <li><a class="fl-activeTab" href="#">Big Linky column 1</a></li>
   <li><a class="fl-col" href="#">Big Linky column 2</a></li>
   <li><a class="fl-col" href="#">Big Linky column 3</a></li>


Text in FSS basically means changing the font-family, size, letter spacing, line-height, and alignment.

Example this would justify text within a paragraph, and set the size to 1.3 ems

<p class="fl-text-align-justify fl-font-size-130">Text</p>


Themes are colorizations and stylistic decorations added to text and containers. Themes can also remove these attributes too. Themes work best with other aspects of FSS, but they have broad effects that work on general markup too.

Example this would make itself and everything nested within it colorized according to the rules outlined in the High Contrast theme:

<body class="fl-theme-hc">

Naming Conventions

FSS and Fluid both adhere to a strict naming convention for class name selectors.

The template for FSS classnames (i.e. class names use for styling) looks like fl-[fluid:thing]-[fluid:role]-[fluid:state], with some guidelines:
  1. multiple words are in camelCase, so they might look like fl-[fluid:multiWordThing]-[fluid:multiWordRole]-[fluid:state]
  2. components are always the first "thing", so they would look like fl-[fluid:componentName]-[fluid:thing]-[fluid:role]-[fluid:state]

[fluid:thing] = required the concept the class name is referring to at the most general yet still meaningful level (eg. fl-tabs, fl-widget, fl-col, fl-container, etc)
[fluid:role] = optional the purpose or action of THING, which could be a more detailed version of THING (eg. fl-tabs-centered, fl-col-flex, fl-container-500, fl-widget-titleBar)
[fluid:state] = optional a modifier of the ROLE or THING, which is only temporary and dependant on other actions (eg. fl-button-left-disabled, fl-widget-content-draggable)

Some examples of FSS class names:

  • fl-col-flex: a flexible width column
  • fl-tabs-left: left-oriented tabs
  • fl-grid-caption: the caption of an image in a grid
  • fl-widget-titlebar: the titlebar of a widget

The template for Infusion selectors (i.e. classnames used for programmatic manipulation of the DOM) looks like flc-[fluid:componentName]-[fluid:thing]-[fluid:role]-[fluid:state], with the same guidelines as FSS selectors.

Some examples of component selectors:

  • flc-progress-label: the label for a progress bar (Progress component)
  • flc-reorderer-dropWarning: the drop warning used with the reorderer (Reorderer component)
  • flc-inlineEdit-textEditButton: the 'edit' button used with an inline edit (Inline Edit component
  • flc-pager-pageLink-skip: a page link that should be skipped (Pager component)

When combining class names for styling and class names for selectors, the convention is

<el class="flc-* fl-*">

so that the DOM selectors are before the CSS selectors.

The reason we do this is to separate the different purposes of selectors: one to style things, one to find things in the DOM. This way, you could change your behavioural code without affecting your appearance and vice versa.

  • No labels