This living style guide serves as a source of truth for commonly used elements, modules, and components and provides a common design language around Longview’s UI patterns. This guide/library is a 'Lego box' that will hopefuly make it easier to build modular front-end components and maintin a visual consistency throughout the app. For more depth on brand styles See Brand Guidelines.
Content Styles
Most of the elements listed below are borrowing from Bootstrap's styles with some degree of customization. See Bootstrap documentation for complete list.
Conditional Colors are mainly used to indicate states, for example, Danger, Warning, Success...
Backgrounds
These are the most common backgrounds used.
The .texture-bg is used for body background.
.bg-dark is used for components like call-outs, navbars, and cards.
The .login-bg background is only used for the login page.
.bg-light is used in places where pages could be printable, like reports and lists.
.bg-white is rarely used.
Logos
Longview logo - mainly used in navbar and login screen logo-longview-iot.svg
Shortened version is used in mobile view logo-longview-iot-sm.svg
Typography
font-family: 'din-2014', sans-serif
Headers
Headers are generally all styled the same, with the exception of .display-1 - .display-4 and .lead. These modifiers will look the same no matter what element they are use with.
h1 Complete IoT Solution for Enterprises
h2 Complete IoT Solution for Enterprises
h3 Complete IoT Solution for Enterprises
h4 Complete IoT Solution for Enterprises
h5 Complete IoT Solution for Enterprises
h6 Complete IoT Solution for Enterprises
Complete IoT Solution for Enterprises
.display-1
Complete IoT Solution for Enterprises
.display-4
Complete IoT Solution for Enterprises
.text-thin Only works for header tags
Body
p Complete IoT Solution for Enterprises
Common text styles
.text-dark.text-secondary
.text-light
.text-muted
.text-white
Conditional colors also exist for text.
.text-success.text-danger.text-warning.text-info See more colors
.form-group for grouping things. Individual form controls automatically receive some global styling. All textual
input,
textarea, and
selectelements with
.form-controlare set to
width: 100%;by default. Wrap labels and controls in .form-group for optimum spacing.
.form-inline Great for forms that only occupy one line for whatever reason.
Input groups
.input-group Extend form controls by adding text or buttons before, after, or on both sides of any text-based input. Use
.input-groupwith an
.input-group-addonto prepend or append elements to a single
.form-control.
.list-groupwith
span.badge Add the badges component to any list group item and it will automatically be positioned on the right.
Cras justo odio
14
Dapibus ac facilisis in
2
Morbi leo risus
1
Cras justo odio
14
Dapibus ac facilisis in
2
Morbi leo risus
1
Tooltips
Tooltips are handy for showing clarifying information for something. They are especially helpful for quick reference on elements like icons. Tooltips can be place on any side of an object, and can also handle custom html. Bootstrap documentation
Navbar
This is the main navigation for the app and is fixed top. See use case in app
.modal Below is a static modal example (meaning its position and display have been overridden). Included are the modal header, modal body (required for padding), and modal footer (optional). We ask that you include modal headers with dismiss actions whenever possible, or provide another explicit dismiss action. Bootstrap on modals
Add a New Alert
Alerts
.alert Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. For inline dismissal, use the alerts jQuery plugin. Bootstrap documentation
Holy guacamole! You should check in on some of those fields below.
Holy guacamole! You should check in on some of those fields below.
Holy guacamole! You should check in on some of those fields below.
Holy guacamole! You should check in on some of those fields below.
Pagination
.pagination Simple pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.
.badge Used for labelling things that need badges.
PrimarySecondarySuccessDangerWarningInfoLightDark
PrimarySecondarySuccessDangerWarningInfoLightDark
Breadcrumbs
.breadcrumb Indicate the current page's location within a navigational hierarchy. Separators are automatically added in CSS through
:before and
content.
Use border utilities to quickly style the border and border-radius of an element. Great for images, buttons, or any other element. Bootstrap documentation
Flex
Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. For more complex implementations, custom CSS may be necessary. Bootstrap documentation
Flex item with a lot of content
Flex item
Flex item
Flex item with a lot of content
Flex item
Flex item
Display
Quickly and responsively toggle the display value of components and more with our display utilities. Includes support for some of the more common values, as well as some extras for controlling display when printing. Bootstrap documentation
Bootstrap includes a wide range of shorthand responsive margin and padding utility classes to modify an element’s appearance. Bootstrap documentation
How it works
Assign responsive-friendly margin or padding values to an element or a subset of its sides with shorthand classes. Includes support for individual properties, all properties, and vertical and horizontal properties. Classes are built from a default Sass map ranging from .25rem to 3rem.
Notation
Spacing utilities that apply to all breakpoints, from xs to xl, have no breakpoint abbreviation in them. This is because those classes are applied from min-width: 0 and up, and thus are not bound by a media query. The remaining breakpoints, however, do include a breakpoint abbreviation.
The classes are named using the format {property}{sides}-{size} for xs and {property}{sides}-{breakpoint}-{size} for sm, md, lg, and xl.
Where property is one of:
m - for classes that set margin
p - for classes that set padding
Where sides is one of:
t - for classes that set margin-top or padding-top
b - for classes that set margin-bottom or padding-bottom
l - for classes that set margin-left or padding-left
r - for classes that set margin-right or padding-right
x - for classes that set both *-left and *-right
y - for classes that set both *-top and *-bottom
blank - for classes that set a margin or padding on all 4 sides of the element
Where size is one of:
0 - for classes that eliminate the margin or padding by setting it to 0
1 - (by default) for classes that set the margin or padding to $spacer * .25
2 - (by default) for classes that set the margin or padding to $spacer * .5
3 - (by default) for classes that set the margin or padding to $spacer
4 - (by default) for classes that set the margin or padding to $spacer * 1.5
5 - (by default) for classes that set the margin or padding to $spacer * 3
auto - for classes that set the margin to auto
(You can add more sizes by adding entries to the $spacers Sass map variable.)
There are CSS animation libraries that are available to use to add small animations to the app. The two that have been employed for this app: Animate.css and Hover.css. (Note: Many of the classes have been removed.)