Semantics
Semantic markup should be used to structure layouts. The main semantic components in Fluid are:
- Left navbar - contains primary branding and navigation; represented by a
<nav class="navbar">
tag - Top nav - contains secondary branding and navigation (such as breadcrumbs) and may contain other application level components (i.e. current user info, notifications, etc.); represented by a
<nav class="fixed-top">
tag that is a direct child of the<body>
- Main content - contains all other application content; represented by the
<main>
tag- Sections - use to divide major content areas; represented by
<section>
tags
- Sections - use to divide major content areas; represented by
- Main footer - may contain tertiary branding/navigation and copyright/legal information, etc.; represented by the last
<footer>
tag that is a direct child of the<body>
Responsiveness
FLUID is designed for large screens. Therefore, the minimum width of the entire layout is limited by setting min-width: 1024px
on the <body>
, below which a horizontal scrollbar will appear. The maximum width of .container-fluid
has been set to 1920px, above which the container will have equal left and right margins to fill up the remaining space. Generally, you should use .container-fluid
so that layouts scale fluidly between these extremes. (The default breakpoints for .container
have not been changed.)
The main header .navbar
is given the modifier classes .navbar-header
and .fixed-top
, while the main footer .navbar
is given .navbar-footer
. These elements should not be placed inside any container so that they can stretch to the full width of the window.
Observe the behavior of the example containers below and the header/footer on this page as you change the width of the window to understand the desired behavior.
Usage
Panels are a concept in Fluid that is implemented using Bootstrap Cards. All content should be contained in panels. You should usually not need to use .card-header
and should generally use .card-title
and .card-text
within the .card-body
to achieve the consistent layout required by Fluid. Use .card-footer
to keep footer elements, including buttons and links, at the bottom of the card even if its height increases.
You are encouraged to make use of the available card layout utilities to control the placement of Panels. This will allow you to achieve horizontal and/or flowing layouts. When you just need a series of full-width panels, simply place one .card
after another in your markup. You can also use an accordion to group panels.
.card-columns
Example
Card title
Card with subtitle
You're going to be an interesting companion, Mr. Data. I'll alert the crew. The look in your eyes, I recognize it. You used to have it for me. The Federation's gone; the Borg is everywhere! When has justice ever been as simple as a rule book?
Card title
I'll alert the crew. You're going to be an interesting companion, Mr. Data. I've had twelve years to think about it. And if I had it to do over again, I would have grabbed the phaser and pointed it at you instead of them. For an android with no feelings, he sure managed to evoke them in others. I am your worst nightmare! A lot of things can change in twelve years, Admiral. You did exactly what you had to do. You considered all your options, you tried every alternative and then you made the hard choice. Besides, you look good in a dress. Computer, belay that order. Mr. Worf, you sound like a man who's asking his friend if he can start dating his sister.
Card title
Yes, absolutely, I do indeed concur, wholeheartedly! Mr. Worf, you sound like a man who's asking his friend if he can start dating his sister. Not if I weaken first. Ensign Babyface! A surprise party? Mr. Worf, I hate surprise parties. I would *never* do that to you. Sorry, Data. Now, how the hell do we defeat an enemy that knows us better than we know ourselves? Captain, why are we out here chasing comets? Our neural pathways have become accustomed to your sensory input patterns. The look in your eyes, I recognize it. You used to have it for me. I can't. As much as I care about you, my first duty is to the ship. Sure. You'd be surprised how far a hug goes with Geordi, or Worf. Computer, belay that order. What's a knock-out like you doing in a computer-generated gin joint like this? This should be interesting. The unexpected is our normal routine. I'd like to think that I haven't changed those things, sir. We know you're dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. We could cause a diplomatic crisis. Take the ship into the Neutral Zone Shields up! Rrrrred alert! Flair is what marks the difference between artistry and mere competence. When has justice ever been as simple as a rule book? In all trust, there is the possibility for betrayal. For an android with no feelings, he sure managed to evoke them in others.
Card title
I recommend you don't fire until you're within 40,000 kilometers. Congratulations - you just destroyed the Enterprise. We know you're dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. Now we know what they mean by 'advanced' tactical training. Some days you get the bear, and some days the bear gets you. Fear is the true enemy, the only enemy. I'm afraid I still don't understand, sir. Is it my imagination, or have tempers become a little frayed on the ship lately? Mr. Worf, you do remember how to fire phasers? Worf, It's better than music. It's jazz.
Card title
We know you're dealing in stolen ore. But I wanna talk about the assassination attempt on Lieutenant Worf. When has justice ever been as simple as a rule book? For an android with no feelings, he sure managed to evoke them in others. A surprise party? Mr. Worf, I hate surprise parties. I would *never* do that to you.
.card-deck
Example
Card title
Card with subtitle
You enjoyed that. Fate protects fools, little children and ships named Enterprise. In all trust, there is the possibility for betrayal. Flair is what marks the difference between artistry and mere competence. I am your worst nightmare! You bet I'm agitated! I may be surrounded by insanity, but I am not insane. I will obey your orders. I will serve this ship as First Officer. And in an attack against the Enterprise, I will die with this crew. But I will not break my oath of loyalty to Starfleet.
Card title
Wait a minute - you've been declared dead. You can't give orders around here. Now we know what they mean by 'advanced' tactical training. Commander William Riker of the Starship Enterprise. Your shields were failing, sir. Your head is not an artifact! A surprise party? Mr. Worf, I hate surprise parties. I would *never* do that to you. Shields up! Rrrrred alert! Congratulations - you just destroyed the Enterprise.
.card-group
Example
Sunset
That sunset is perfectly lined up with that crazy-shaped tree. It's like a burning bush.
Butterflies
Thos are some crazy mushrooms. I hope those butterflies know what they're doing.
Daisy
Wow, that is some amazing background blur. Looks like the photographer read his camera's manual!
Tracks
Where are these tracks going? Does anybody know? Does anybody care?
Cards with colored borders
Primary border
Some quick example text to build on the card title and make up the bulk of the card's content.
Success border
Some quick example text to build on the card title and make up the bulk of the card's content.
Warning border
Some quick example text to build on the card title and make up the bulk of the card's content.
Danger border
Some quick example text to build on the card title and make up the bulk of the card's content.
Info border
Some quick example text to build on the card title and make up the bulk of the card's content.
Dark border
Some quick example text to build on the card title and make up the bulk of the card's content.
Cards with colored backgrounds
Primary background
Some quick example text to build on the card title and make up the bulk of the card's content.
Success background
Some quick example text to build on the card title and make up the bulk of the card's content.
Warning background
Some quick example text to build on the card title and make up the bulk of the card's content.
Danger background
Some quick example text to build on the card title and make up the bulk of the card's content.
Info background
Some quick example text to build on the card title and make up the bulk of the card's content.
Dark background
Some quick example text to build on the card title and make up the bulk of the card's content.
Font Family
Sizes
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Body Text
font-size: 14px;
Small Text
font-size: 13px;
Use for tooltips and other fine print.
Weights
Normal
Roboto Regular (font-weight: 400)
Roboto Regular (font-weight: 400)
Roboto Regular (font-weight: 400)
Roboto Light (font-weight: 300)
Roboto Light (font-weight: 300)
Roboto Light (font-weight: 300)
Bold
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Roboto Bold (font-weight: 500)
Colors
Light Text (color: #5a656d;)
On .bg-light
h6.text-light
h5.text-light
h4.text-light
h3.text-light
h2.text-light
h1.text-light
On .bg-default
h6.text-light
h5.text-light
h4.text-light
h3.text-light
h2.text-light
h1.text-light
On .bg-dark
h6.text-light
h5.text-light
h4.text-light
h3.text-light
h2.text-light
h1.text-light
Default Text (color: #1b2329;)
On .bg-light
h6.text-default
h5.text-default
h4.text-default
h3.text-default
h2.text-default
h1.text-default
On .bg-default
h6.text-default
h5.text-default
h4.text-default
h3.text-default
h2.text-default
h1.text-default
On .bg-dark
h6.text-default
h5.text-default
h4.text-default
h3.text-default
h2.text-default
h1.text-default
Dark Text (color: #000000;)
On .bg-light
h6.text-dark
h5.text-dark
h4.text-dark
h3.text-dark
h2.text-dark
h1.text-dark
On .bg-default
h6.text-dark
h5.text-dark
h4.text-dark
h3.text-dark
h2.text-dark
h1.text-dark
On .bg-dark
h6.text-dark
h5.text-dark
h4.text-dark
h3.text-dark
h2.text-dark
h1.text-dark
Iconography
Usage
Icons that are integral to Fluid are provided in a custom icon font named fluidicons
.
Add an icon in HTML as follows: <i class="icon icon-class"></i>
where icon-class
is one of the icon class names in the following lists.
You can also use the ASCII or the Unicode representation with font-family: "fluidicons";
in CSS.
Status Icons
These icons are used to indicate status and default to the associated status theme color.
+
\002b
!
\0021
-
\002d
%
\0025
Affordance Icons
These icons are used to indicate available interactions with components.
?
\003f
<
\003c
>
\003e
^
\005e
_
\005f
{
\007b
}
\007d
~
\007e
|
\007c
\
\005c
/
\002f
$
\0024
:
\003a
*
\002a
#
\0023
Additional Icons
Other icons that you may need for application-specific usage are not included, but we recommend Font Awesome 4.7.
Palettes
FLUID specifies three color palettes: a Hybrid palette featuring a dark navbar and a light content area, a fully Dark palette, and an Accessible palette that ensure accessibility guidelines are followed with regard to color choices. You can switch among these palettes by clicking the user icon in upper right corner to reveal the preferences menu.
Grays
Gray Usage
Hybrid Palette
Dark Palette
Accessible Palette
Theme Colors
Hybrid Palette
Dark Palette
Accessible Palette
Ephemeral Shadow
Ephemeral UI components—such as dropdown menus, tooltips, and notifications—always have a drop shadow. It's a bit deeper, as you can see on this sample element.
Default Shadows
By default, UI components do not have shadows. We have leave Bootstrap's $enable-shadows
flag turned off for this reason. However, certain components do have shadows or can have them added, as follows.
Static Shadow
Static UI components, like this card, can optionally have a drop shadow applied by using .shadow
. You can use it to emphasize or differentiate certain elements.
Accordion
Alert types
Alert tester
Filter
The filter control provides faceted filtering of a data set. It returns a JSON object that can be used to filter a related data source. For an example of how it should be displayed in relation to a table, see Tables.
Current filter output:
The following options can be passed to the Filter constructor:
Name | Type | Default | Description |
---|---|---|---|
tooltips | boolean | true | Create tooltips for any keys or values that are truncated in both the pills and the dropdown menus. This functionality is dependent on the provided Tooltips implementation. |
autoFocus | boolean | true | Automatically set the focus on a new filter after completing a filter. |
Text Inputs
Validation
Checkboxes & Radio Buttons
Select Menus
<select>
elements are styled using Bootstrap-Select. You must add the selectpicker
class to all <select>
elements to enable custom styling.
<select>
elements can be further styled using any of the btn-*
classes placed in a data-style
attribute, for example: <select class="selectpicker" data-style="btn-primary">
Popovers
Tooltips
Progress Bars
Use to indicated determinate activity. Different theme colors can be used to indicate process status. The default color is blue.
Spinners
Use to indicate indeterminate activity.
.spinner-border-sm
Useful inside controls like buttons. Use the .spinner-border-light
modifier on colored backgrounds.
.spinner-border
Good for indicating activity in just a section of the screen or otherwise non-modal loading.
.spinner-border-lg
Can be used to indicate a full-screen loading state.
Table in panel
This example demonstrates most of the basic table features, including:
- Basic search box
- Global actions dropdown menu
- Column sorting by clicking on column headings indicated with blue arrows
- Select all by clicking the checkbox in the header row
- Actions component in each row displaying up to three icons or a dropdown menu
- Pagination control
Note that checkboxes for row selection may be placed in either the left- or the rightmost position, as required by the application, although Fluid prefers them to be on the right to reduce the user's need to move the pointer.
Status | Name | Username | Last Login | Actions |
|
---|---|---|---|---|---|
Success | William Ross | admiralbill | 2 days ago |
|
|
Warning | Benjamin Sisko | brotherbenny | Just now |
|
|
Danger | Miles O'Brien | smiley | 5 hours ago |
|
|
Info | Julian Bashir | kukalaka | Never |
|
|
Table as primary content
When a table is the primary content of a page it does not need to be enclosed in a panel, as shown in the following example.
Status | Name | Username | Last Login | Actions | |
---|---|---|---|---|---|
Success | William Ross | admiralbill | 2 days ago | ||
Warning | Benjamin Sisko | brotherbenny | Just now | ||
Danger | Miles O'Brien | smiley | 5 hours ago | ||
Info | Julian Bashir | kukalaka | Never | ||
Table with primary search
When search is a primary function of a table, the search bar can be full-width on its own line, as shown below.
Table with filter control
When filtering by facets is a primary function of a table, the Filter component should be used. In this case, the filter bar should be full-width on its own line, as shown below.
Company | Name | Department | Gender | City | Country |
---|---|---|---|---|---|
Altavista | Rogan Sosa | Legal Department | Female | St. Pölten | Puerto Rico |
Altavista | Daphne Peck | Sales and Marketing | Female | Beerzel | Saint Lucia |
Altavista | Gage Nunez | Legal Department | Male | Kawerau | Saint Martin |
Adobe | Yvonne Delgado | Public Relations | Male | Shippagan | Christmas Island |
Chami | Thor Trujillo | Quality Assurance | Female | Kalken | Egypt |
Chami | Octavius Thornton | Asset Management | Female | Armo | French Southern Territories |
Lavasoft | Evangeline Porter | Research and Development | Male | Maastricht | Congo, the Democratic Republic of the |
Lavasoft | Craig Tran | Legal Department | Male | Eksaarde | Kenya |
Otto Rutledge | Legal Department | Female | Gonda | Panama | |
Chami | Mannix Dixon | Research and Development | Male | Ahmadpur East | Ukraine |
Microsoft | Wilma Brock | Finances | Male | Placanica | Venezuela |
Macromedia | Chloe Dale | Advertising | Male | Castel Ritaldi | Sierra Leone |
Lycos | Carolyn Love | Sales and Marketing | Male | Castelnuovo Magra | Morocco |
Apple Systems | Herman Benton | Sales and Marketing | Male | Dieppe | Curaçao |
Camilla Moody | Human Resources | Male | Haßloch | Libya | |
Finale | Austin Kemp | Payroll | Male | Chester | United Arab Emirates |
Chami | Gabriel Moss | Accounting | Male | Sterling Heights | Gabon |
Microsoft | Piper Long | Customer Service | Male | Gualdo Cattaneo | Bermuda |
Armando Riley | Human Resources | Male | Amelia | Gibraltar | |
Lycos | Callum Pennington | Advertising | Female | Tiruvarur | Honduras |
Jessamine Kelley | Tech Support | Male | Broxburn | Malawi | |
Borland | Reagan Bell | Quality Assurance | Male | Lebu | Gibraltar |
Sibelius | Elliott Macias | Sales and Marketing | Male | Haßloch | Romania |
Lycos | Jerome Christian | Legal Department | Female | Cametá | Ukraine |
Lavasoft | Madaline Moses | Finances | Female | Kailua | British Indian Ocean Territory |
Nathaniel Baker | Media Relations | Female | Cavaso del Tomba | Yemen | |
Yahoo | Mia Bailey | Research and Development | Male | Meix-Devant-Virton | Austria |
Borland | Amelia Meyers | Finances | Male | Independence | Macedonia |
Apple Systems | Melinda Cabrera | Research and Development | Male | Saguenay | Seychelles |
Cakewalk | Lance Baird | Research and Development | Female | Rochester | Guinea |
Sibelius | Wynne Day | Tech Support | Male | North Berwick | Chile |
Microsoft | Cyrus Sargent | Finances | Female | Krefeld | Côte D'Ivoire (Ivory Coast) |
Adobe | Rogan Wilder | Payroll | Female | Dorchester | Kiribati |
Lavasoft | Channing Albert | Customer Service | Male | Perwez | United Arab Emirates |
Yahoo | Kamal Mcknight | Public Relations | Female | Griesheim | Slovenia |
Sibelius | Peter Baker | Legal Department | Female | Westerlo | Saint Kitts and Nevis |
Yahoo | Kylee Floyd | Advertising | Female | Wanneroo | Iraq |
Finale | Deirdre Davis | Advertising | Female | Mattersburg | South Georgia and The South Sandwich Islands |
Finale | Noah Mcconnell | Research and Development | Female | Chilliwack | Kiribati |
Yahoo | Levi Hull | Advertising | Female | Turgutlu | Anguilla |
Macromedia | Lunea Burch | Human Resources | Male | Gagliano del Capo | Aruba |
Lavasoft | Xerxes Fry | Human Resources | Female | Scandriglia | Côte D'Ivoire (Ivory Coast) |
Yahoo | Cynthia Brown | Public Relations | Male | Petrolina | Germany |
Yahoo | Dara Oneil | Media Relations | Female | Bay Roberts | Malaysia |
Jordan Jacobs | Asset Management | Male | Albury | Georgia | |
Chami | Angelica Oconnor | Human Resources | Female | Ayr | Sierra Leone |
Yahoo | Sylvester Pugh | Legal Department | Female | Göteborg | Japan |
Adobe | Aspen Hartman | Quality Assurance | Female | Levallois-Perret | Faroe Islands |
Yahoo | Patricia Witt | Sales and Marketing | Female | Belém | Antarctica |
Sibelius | Kelly Gibson | Public Relations | Male | Lago Ranco | Indonesia |
Macromedia | Ariana Rogers | Legal Department | Female | Minto | Venezuela |
Cakewalk | Cade Clements | Sales and Marketing | Male | Chicoutimi | Malawi |
Apple Systems | Quynn Larson | Customer Service | Male | Sart-Dames-Avelines | Hong Kong |
Sibelius | Gray Henson | Public Relations | Female | Bossire | Greenland |
Altavista | Ruby Guthrie | Quality Assurance | Female | Houston | Haiti |
Borland | Francis Greer | Customer Service | Male | Saint-Malo | Brunei |
Alice Washington | Quality Assurance | Male | Juan Fernández | Bangladesh | |
Finale | Gary Gross | Customer Service | Male | Ganshoren | Congo, the Democratic Republic of the |
Yahoo | Kelly Lindsey | Asset Management | Female | Rodì Milici | New Zealand |
Lavasoft | Aquila Mercer | Accounting | Female | Villafalletto | El Salvador |
Borland | Ray Wiley | Public Relations | Female | Pimpri-Chinchwad | Tanzania |
Lycos | Illiana Small | Asset Management | Male | Boneffe | Greece |
Yahoo | Mohammad Sexton | Payroll | Male | Luino | El Salvador |
Apple Systems | Jakeem Powell | Customer Service | Male | Bearberry | Montserrat |
Cakewalk | Kibo Holcomb | Payroll | Female | Melipilla | Montserrat |
Sibelius | Charles Baird | Sales and Marketing | Male | Valkenburg aan de Geul | Martinique |
Lavasoft | Demetria Landry | Public Relations | Male | Tillet | Brunei |
Adobe | Garrison Stanton | Payroll | Male | Navsari | Guadeloupe |
Chami | Camden Nixon | Customer Service | Female | Sobral | Congo, the Democratic Republic of the |
Borland | Violet Chase | Advertising | Male | Sitapur | Spain |
Yahoo | Tatyana Smith | Media Relations | Male | Cuddapah | Antarctica |
Altavista | Berk Ford | Human Resources | Male | Cittanova | Korea, South |
Microsoft | Amethyst Rivers | Quality Assurance | Male | Campitello di Fassa | Grenada |
Microsoft | Fiona Nieves | Advertising | Female | Maransart | Estonia |
Sibelius | Neve Bailey | Public Relations | Female | Montigny-lès-Metz | Aruba |
Lycos | Aretha Ford | Payroll | Female | North Saanich | Nigeria |
Borland | Troy Bentley | Customer Service | Male | Carlton | Peru |
Adobe | Bethany Cooley | Payroll | Male | Mignanego | Somalia |
Chami | Buckminster Lara | Quality Assurance | Male | Taunusstein | Svalbard and Jan Mayen Islands |
Microsoft | Ori Patton | Customer Relations | Male | Antibes | Virgin Islands, British |
Yahoo | Grant Frederick | Human Resources | Female | Watford | Hong Kong |
Macromedia | Yuri Gaines | Legal Department | Female | De Klinge | Jamaica |
Borland | Taylor Herrera | Human Resources | Male | El Carmen | Saint Vincent and The Grenadines |
Macromedia | Aristotle Harris | Customer Service | Female | Motta Camastra | Malaysia |
Altavista | George Cain | Tech Support | Male | Kaneohe | Bermuda |
Cakewalk | Geoffrey Cummings | Tech Support | Male | Thuillies | Costa Rica |
Apple Systems | Kimberley Serrano | Advertising | Female | Llanidloes | Niue |
Finale | Erich Monroe | Payroll | Male | Erchie | Ghana |
Yahoo | Malachi Chase | Human Resources | Female | Strona | Denmark |
Apple Systems | Martena Atkins | Tech Support | Female | Leffinge | Solomon Islands |
Altavista | Orli Duffy | Sales and Marketing | Male | Toruń | Mauritania |
Yahoo | Cassady Vance | Media Relations | Female | Kollam | Gibraltar |
Borland | Serena Rosario | Customer Service | Male | Albiano | French Guiana |
Finale | Aimee Curtis | Asset Management | Female | Indianapolis | Sierra Leone |
Finale | Marny Bowers | Customer Service | Male | Sivry | Algeria |
Adobe | Conan Matthews | Asset Management | Female | Naumburg | Bhutan |
Microsoft | Anthony Gilbert | Media Relations | Male | Olivar | Thailand |
Microsoft | Oscar Knox | Quality Assurance | Female | Roubaix | Åland Islands |
Yahoo | Marsden Gutierrez | Public Relations | Male | Hapur | Israel |
Altavista | Xenos Stone | Accounting | Male | Portree | Poland |
Tabs
Vertical Tabs
On-Page Wizard
Use when the wizard is the primary content of a page that is within the global navigation context.
1. Step A
This is the first step of this wizard. You can put an extended step description here.
2. Step B
This is the second step of this wizard. You can put an extended step description here.
3. Step C
This is the third and final step of this wizard. You can put an extended step description here.