Under development (navigate through the menu to see components)

Installation

Via Bower: bower install werneo or download latest release from github: https://github.com/wernerdweight/Werneo/releases

Usage

Compiled files are in the dist folder but it is NOT recommended to use them for you will hardly need all the components! If you use sass, you should import the sass file and edit configuration (see below).

                    // your sass stylesheet file (e.g. stylesheets/theme.sass - that's up to you of course)

@charset 'UTF-8'
...
@import 'werneo-settings'	// it is recommended to use separate file to configure werneo
@import 'bower_components/werneo/dev/sass/werneo' // path may differ according to your use of bower
...
				

Create and edit _werneo-settings.sass file. It is recommended to copy the defaults from bower_components/werneo/dev/sass/_variables.sass, change variables and comment-out lines that you do not want to change. Below is the default configuration.

Pro Tip: You can lower the final filesize by using only the colors that you need - change the $wdWerneoColors variable (affects color name classes - e.g. if you change the variable to ('black' $wdWerneoBlack, 'custom' $customColor) only classes .bg-black and .bg-custom will be available).

                    // _werneo-settings.sass

///////////////////////////////////////////////////////////////////////////////////
///            SWITCHES (plus additional size if minified)
///            minimal size is 2.5 kB
///            maximal size is 122 kB
///////////////////////////////////////////////////////////////////////////////////

/// use backgrounds ~ 0.5 kB
$wdWerneoUseBackgrounds: true !default
/// use badges ~ 0.5 kB
$wdWerneoUseBadges: true !default
/// use breadcrumbs ~ 1.25 kB
$wdWerneoUseBreadcrumbs: true !default
/// use buttons ~ 13 kB
$wdWerneoUseButtons: true !default
/// use chevrons ~ 1 kB
$wdWerneoUseChevrons: true !default
/// use code ~ 0.25 kB
$wdWerneoUseCode: true !default
/// use dropdowns ~ 28 kB
$wdWerneoUseDropdowns: true !default
/// use dynamic filters ~ 0.25 kB
$wdWerneoUseDynaFilter: true !default
/// use flash messages ~ 1.25 kB
$wdWerneoUseFlashMessages: true !default
/// use forms ~ 14 kB
$wdWerneoUseForms: true !default
/// use gallery ~ 1.25 kB
$wdWerneoUseGallery: true !default
/// use groups ~ 0.1 kB
$wdWerneoUseGroups: true !default
/// use lists ~ 15 kB
$wdWerneoUseLists: true !default
/// use modal buttons ~ 5 kB
$wdWerneoUseModalButtons: true !default
/// use modals ~ 2 kB
$wdWerneoUseModals: true !default
/// use navigation ~ ? kB
$wdWerneoUseNavigation: true !default
/// use pagination ~ 11 kB
$wdWerneoUsePagination: true !default
/// use progressbar ~ 1 kB
$wdWerneoUseProgressBar: true !default
/// use scrollbars ~ 0.25 kB
$wdWerneoUseScrollbars: true !default
/// use tables ~ 3.5 kB
$wdWerneoUseTables: true !default
/// use tabs ~ 9 kB
$wdWerneoUseTabs: true !default
/// use timeline ~ 6 kB
$wdWerneoUseTimeline: true !default
/// use transformations ~ 0.1 kB
$wdWerneoUseTransformations: true !default
/// use tree view ~ 6 kB
$wdWerneoUseTreeView: true !default
/// use typography ~ 1.75 kB
$wdWerneoUseTypography: true !default
/// use widgets ~ 0.1 kB
$wdWerneoUseWidgets: true !default

///////////////////////////////////////////////////////////////////////////////////
///            GENERAL VARIABLES
///////////////////////////////////////////////////////////////////////////////////

/// base variables
$wdWerneoBorderRadius: 0 !default
$wdWerneoElementSize: 5rem !default
$wdWerneoAminationDuration: 400ms !default

/// colors
$wdWerneoBlack: #000 !default
$wdWerneoCrimson: #dc143c !default
$wdWerneoGreyDark: #333 !default
$wdWerneoGreyMedium: #666 !default
$wdWerneoGreyLight: #ddd !default
$wdWerneoGreyLightest: #eee !default
$wdWerneoMauve: #d473d4 !default
$wdWerneoOrange: #f45633 !default
$wdWerneoTeal: #028428 !default
$wdWerneoTurquoise: #5af !default
$wdWerneoWhite: #fff !default
$wdWerneoYellow: #ffc200 !default

/// color map
$wdWerneoColors: ('turquoise' $wdWerneoTurquoise, 'teal' $wdWerneoTeal, 'yellow' $wdWerneoYellow, 'crimson' $wdWerneoCrimson, 'mauve' $wdWerneoMauve, 'grey-dark' $wdWerneoGreyDark, 'grey-light' $wdWerneoGreyLight, 'orange' $wdWerneoOrange, 'white' $wdWerneoWhite, 'black' $wdWerneoBlack) !default

/// font weights
$wdWerneoLighter: 200 !default
$wdWerneoNormal: 400 !default
$wdWerneoBold: 700 !default

/// breakpoints
$wdWerneoResponsiveWidthDesktop: 1200px !default
$wdWerneoResponsiveWidthTablet: 768px !default

/// socpe map
$wdWerneoScopes: ('tablet': 't', 'desktop': 'd')

///////////////////////////////////////////////////////////////////////////////////
///            COMPONENT VARIABLES
///////////////////////////////////////////////////////////////////////////////////

/// badges
$wdWerneoBadgesPaddingVertical: 0.5rem !default
$wdWerneoBadgesPaddingHorizontal: 1rem !default

/// breadcrumbs
$wdWerneoBreadcrumbsLinkPaddingVertical: 0.5rem !default
$wdWerneoBreadcrumbsLinkPaddingHorizontal: 1rem !default
$wdWerneoBreadcrumbsPaddingHorizontal: 2rem !default
$wdWerneoBreadcrumbsPaddingVertical: 1rem !default
$wdWerneoBreadcrumbsRoot: '\\\\ ' !default
$wdWerneoBreadcrumbsSeparator: ' \\ ' !default
$wdWerneoBreadcrumbsSubcrumbBorderColor: $wdWerneoGreyDark !default
$wdWerneoBreadcrumbsSubcrumbBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoBreadcrumbsSubcrumbBorderStyle: solid !default
$wdWerneoBreadcrumbsSubcrumbBorderWidth: 0 !default
$wdWerneoBreadcrumbsSubcrumbLinkPaddingVertical: 0.5rem !default
$wdWerneoBreadcrumbsSubcrumbLinkPaddingHorizontal: 2rem !default
$wdWerneoBreadcrumbsSubcrumbMaxHeight: 20rem !default
$wdWerneoBreadcrumbsSubcrumbMaxWidth: 30rem !default
$wdWerneoBreadcrumbsSubcrumbPaddingHorizontal: 0 !default
$wdWerneoBreadcrumbsSubcrumbTriggerHeight: 1rem !default
$wdWerneoBreadcrumbsSubcrumbTriggerWidth: 1rem !default

/// buttons
$wdWerneoButtonsBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoButtonsFocusAnimationDuration: 1000ms !default
$wdWerneoButtonsFocusAnimationFunction: diagonalSplitBackgroundHover !default
$wdWerneoButtonsLoadingAnimationDuration: 1000ms !default
$wdWerneoButtonsLoadingAnimationFunction: loadMoreSpinner !default
$wdWerneoButtonsLoadingSize: $wdWerneoElementSize !default
$wdWerneoButtonsOutlineStyle: solid !default
$wdWerneoButtonsOutlineWidth: 0.2rem !default
$wdWerneoButtonsPaddingVertical: 1.6rem !default
$wdWerneoButtonsPaddingHorizontal: 3rem !default

/// chevrons
$wdWerneoChevronsHeight: 0.4rem !default
$wdWerneoChevronsWidth: 1.2rem !default

/// code
$wdWerneoCodeBackgroundColor: rgba($wdWerneoCrimson, 0.15) !default
$wdWerneoCodeBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoCodeColor: $wdWerneoCrimson !default
$wdWerneoCodePaddingHorizontal: 1rem !default
$wdWerneoCodePaddingVertical: 0.25rem !default
$wdWerneoPrePaddingHorizontal: 2rem !default
$wdWerneoPrePaddingVertical: 0 !default
$wdWerneoPreBackgroundColor: $wdWerneoBlack !default

/// dropdowns
$wdWerneoDropdownsBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoDropdownsBorderWidth: 0.4rem !default
$wdWerneoDropdownsDividerHeight: 0.1rem !default
$wdWerneoDropdownsDividerMarginHorizontal: 0 !default
$wdWerneoDropdownsDividerMarginVertical: 0.5rem !default
$wdWerneoDropdownsHeight: $wdWerneoElementSize !default
$wdWerneoDropdownsMaxViewportHeight: 90vh !default
$wdWerneoDropdownsOptionBorderTopWidth: 0.1rem !default
$wdWerneoDropdownsOptionPaddingHorizontal: 1.5rem !default
$wdWerneoDropdownsOptionPaddingVertical: 0 !default
$wdWerneoDropdownsValuePaddingHorizontal: 1rem !default

/// dynamic filters
$wdWerneoDynaFilterItemMaxHeight: 50rem !default
$wdWerneoDynaFilterItemMaxWidth: 50rem !default

/// flash messages
$wdWerneoFlashMessagesMessageBorder: 0.4rem !default
$wdWerneoFlashMessagesMessageCloseSize: 2rem !default
$wdWerneoFlashMessagesMessageMarginBottom: 0.5rem !default
$wdWerneoFlashMessagesMessagePaddingHorizontal: 1rem !default
$wdWerneoFlashMessagesMessagePaddingVertical: 1rem !default
$wdWerneoFlashMessagesQueueMinWidth: 24rem !default
$wdWerneoFlashMessagesQueueOffsetHorizontal: 2rem !default
$wdWerneoFlashMessagesQueueOffsetVertical: 2rem !default
$wdWerneoFlashMessagesQueuePositionHorizontal: right !default
$wdWerneoFlashMessagesQueuePositionVertical: bottom !default
$wdWerneoFlashMessagesQueueWidth: 20% !default

/// forms
$wdWerneoFormsBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoFormsBorderStyle: solid !default
$wdWerneoFormsBorderWidth: 0.4rem !default
$wdWerneoFormsErrorPadding: 0.5rem 1rem 0.2rem 1rem !default
$wdWerneoFormsExpandedChoiceBorderWidth: 0.1rem !default
$wdWerneoFormsExpandedChoiceLabelMarginRight: 1.5rem !default
$wdWerneoFormsExpandedChoiceMarginRight: 0.5rem !default
$wdWerneoFormsExpandedChoiceSize: 1.5rem !default
$wdWerneoFormsInputSize: $wdWerneoElementSize !default
$wdWerneoFormsInputPaddingHorizontal: 1rem !default
$wdWerneoFormsInputPaddingVertical: 0 !default
$wdWerneoFormsSwitchHeight: 2rem !default
$wdWerneoFormsSwitchOutlineWidth: 0.1rem !default
$wdWerneoFormsSwitchPaddingHorizontal: 1rem !default
$wdWerneoFormsSwitchPaddingVertical: 0 !default
$wdWerneoFormsSwitchWidth: 1rem !default
$wdWerneoFormsTextareaPaddingHorizontal: 1rem !default
$wdWerneoFormsTextareaPaddingVertical: 0.5rem !default

/// lists
$wdWerneoListsCheckBorderWidth: 0.3rem !default
$wdWerneoListsCheckOffsetHorizontal: 0.25rem !default
$wdWerneoListsCheckOffsetVertical: 0.25rem !default
$wdWerneoListsCheckHeight: 1rem !default
$wdWerneoListsCheckWidth: 1.5rem !default
$wdWerneoListsItemBorderWidth: 0.4rem !default
$wdWerneoListsItemCheckerSize: 4rem !default
$wdWerneoListsItemHeight: 10rem !default
$wdWerneoListsItemHoverShadowWidth: 0.3rem !default
$wdWerneoListsItemOverlayHeight: 3.2rem !default
$wdWerneoListsItemPaddingHorizontal: 0.6rem !default
$wdWerneoListsItemPaddingVertical: 0.6rem !default

/// modal buttons
$wdWerneoModalButtonsBodyPaddingHorizontal: 2rem !default
$wdWerneoModalButtonsBodyPaddingVertical: 1rem !default
$wdWerneoModalButtonsCloseButtonOffsetHorizontal: 1rem !default
$wdWerneoModalButtonsCloseButtonOffsetVertical: 1rem !default
$wdWerneoModalButtonsHeaderBorderTopWidth: 0.1rem !default
$wdWerneoModalButtonsFooterPaddingHorizontal: 0.5rem !default
$wdWerneoModalButtonsFooterPaddingVertical: 0.5rem !default
$wdWerneoModalButtonsHeaderBorderBottomWidth: 0.4rem !default
$wdWerneoModalButtonsHeaderPaddingBottom: 0.5rem !default
$wdWerneoModalButtonsHeaderPaddingLeft: 1rem !default
$wdWerneoModalButtonsHeaderPaddingRight: 3.5rem !default
$wdWerneoModalButtonsHeaderPaddingTop: 1rem !default

/// modals
$wdWerneoModalsBackgroundColor: $wdWerneoBlack !default
$wdWerneoModalsBasicHeight: 30rem !default
$wdWerneoModalsBasicWidth: 65rem !default
$wdWerneoModalsBoxShadowFeather: 2rem !default
$wdWerneoModalsCloseButtonColor: $wdWerneoGreyDark !default
$wdWerneoModalsCloseButtonOffsetHorizontal: 1rem !default
$wdWerneoModalsCloseButtonOffsetVertical: 1rem !default
$wdWerneoModalsCloseButtonPaddingHorizontal: 1rem !default
$wdWerneoModalsCloseButtonPaddingVertical: 0.5rem !default
$wdWerneoModalsFullHeight: 100% !default
$wdWerneoModalsFullWidth: 100% !default
$wdWerneoModalsLargeHeight: 80% !default
$wdWerneoModalsLargeWidth: 80% !default
$wdWerneoModalsMediumHeight: 50% !default
$wdWerneoModalsMediumWidth: 50% !default
$wdWerneoModalsTallHeight: 80% !default
$wdWerneoModalsWideHeight: 50% !default
$wdWerneoModalsWideWidth: 80% !default

/// navigation
$wdWerneoNavigationCurtainColor: $wdWerneoBlack !default
$wdWerneoNavigationCurtainOpacity: 0.5 !default
$wdWerneoNavigationHeaderHeight: 4rem !default
$wdWerneoNavigationHeaderTriggerPaddingHorizontal: 1rem !default
$wdWerneoNavigationHeaderTriggerPaddingVertical: 0 !default
$wdWerneoNavigationItemBackgroundColorHover: rgba($wdWerneoWhite, 0.1) !default
$wdWerneoNavigationItemBorderOpacity: 0.25 !default
$wdWerneoNavigationItemBorderWidth: 0.1rem !default
$wdWerneoNavigationItemPaddingHorizontal: 2rem !default
$wdWerneoNavigationItemPaddingVertical: 1rem !default
$wdWerneoNavigationPaneHeight: 100vh !default
$wdWerneoNavigationPaneOpenerBackgroundColor: transparent !default
$wdWerneoNavigationPaneOpenerBackgroundColorHover: rgba($wdWerneoWhite, 0.1) !default
$wdWerneoNavigationPaneOpenerBorderSpacing: 1rem !default
$wdWerneoNavigationPaneOpenerBorderWidth: 0.1rem !default
$wdWerneoNavigationPaneOpenerWidth: 4rem !default
$wdWerneoNavigationPaneWidth: 100% !default
$wdWerneoNavigationPaneWidthDesktop: 30rem !default
$wdWerneoNavigationPaneWidthTablet: 50% !default
$wdWerneoNavigationTriggerBarHeight: 0.5rem !default
$wdWerneoNavigationTriggerSize: 4rem !default

/// pagination
$wdWerneoPaginationDirectionNavigationMargin: 0.5rem !default
$wdWerneoPaginationDotsMarginHorizontal: 0.5rem !default
$wdWerneoPaginationDotsMarginVertical: 0 !default
$wdWerneoPaginationItemBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoPaginationItemHeight: 4rem !default
$wdWerneoPaginationItemPaddingHorizontal: 2rem !default
$wdWerneoPaginationItemPaddingVertical: 1rem !default

/// progress bar
$wdWerneoProgressBarBorderWidth: 0.3rem !default
$wdWerneoProgressBarHeight: 1.5rem !default

/// scrollbars
$wdWerneoScrollbarsBodyBorderWidth: 0.2rem !default
$wdWerneoScrollbarsBodyTrackColor: $wdWerneoWhite !default
$wdWerneoScrollbarsBorderWidth: 0.2rem !default
$wdWerneoScrollbarsHeight: 1rem !default
$wdWerneoScrollbarsThumbColor: rgba($wdWerneoBlack,0.25) !default
$wdWerneoScrollbarsTrackColor: transparent !default
$wdWerneoScrollbarsWidth: 1rem !default

/// tables
$wdWerneoTablesBodyCellPaddingHorizontal: 1rem !default
$wdWerneoTablesBodyCellPaddingVertical: 0.5rem !default
$wdWerneoTablesBorderedBorderWidth: 0.1rem !default
$wdWerneoTablesHeaderCellPaddingHorizontal: 1rem !default
$wdWerneoTablesHeaderCellPaddingVertical: 1rem !default
$wdWerneoTablesLinedBorderWidth: 0.1rem !default

/// tabs
$wdWerneoTabsBorderWidth: 0.1rem !default
$wdWerneoTabsBorderWidthActive: 0.4rem !default
$wdWerneoTabsContentPaddingHorizontal: 2rem !default
$wdWerneoTabsContentPaddingVertical: 2rem !default
$wdWerneoTabsNavigationPaddingHorizontal: 1rem !default
$wdWerneoTabsNavigationPaddingVertical: 0.5rem !default
$wdWerneoTabsVarticalMarginBottom: 0.2rem !default

/// timeline
$wdWerneoTimelineArrowSize: 0.7rem !default
$wdWerneoTimelineContentBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoTimelineContentPaddingHorizontal: 2.7rem !default
$wdWerneoTimelineContentPaddingVertical: 2.7rem !default
$wdWerneoTimelineContentWidth: 45% !default
$wdWerneoTimelineIconBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoTimelineIconOffset: 1rem !default
$wdWerneoTimelineIconSize: 4rem !default
$wdWerneoTimelineLineColor: $wdWerneoGreyLight !default
$wdWerneoTimelineLineWidth: 0.4rem !default

/// transformations
$wdWerneoRotationSteps: (-90deg, 90deg, 180deg) !default

/// tree view
$wdWerneoTreeViewBranchWidth: 0.1rem !default
$wdWerneoTreeViewLabelBorderWidth: 0.1rem !default
$wdWerneoTreeViewLabelPaddingHorizontal: 1rem !default
$wdWerneoTreeViewLabelPaddingVertical: 1rem !default
$wdWerneoTreeViewNodeStep: 1rem !default

/// typography
$wdWerneoTypographyAccentFontFamily: Helvetica, Arial, sans-serif !default
$wdWerneoTypographyArticleParagraphMarginBottom: 0.5rem !default
$wdWerneoTypographyBasicFontFamily: Helvetica, Arial, sans-serif !default
$wdWerneoTypographyBasicFontSize: 1.6rem !default
$wdWerneoTypographyBasicLineHeight: 150% !default
$wdWerneoTypographyBigFontSize: 120% !default
$wdWerneoTypographySmallFontSize: 80% !default

/// widgets
$wdWerneoWidgetsBorderRadius: $wdWerneoBorderRadius !default
$wdWerneoWidgetsBorderWidth: 0.1rem !default
$wdWerneoWidgetsSectionPaddingHorizontal: 2rem !default
$wdWerneoWidgetsSectionPaddingVertical: 2rem !default
				

As for javascript files you can either use the precompiled file in dist/js/werneo.js or compile the code from source files in dev/js/wd/*.js. Werneo is using Grunt, so you can just comment-out modules you don't need in dev/js/wd/main.js (see below) and run grunt build to compile from source (which requires npm and running npm install the first time).

					// dev/js/wd/main.js

import Werneo from "./core/werneo.js";
import WerneoAjaxLoader from "./plugins/ajaxLoader.js";
import WerneoBreadcrumbs from "./plugins/breadcrumbs.js";
import WerneoDropdowns from "./plugins/dropdowns.js";
import WerneoDynaFilter from "./plugins/dynaFilter.js";
import WerneoFlashMessages from "./plugins/flashMessages.js";
import WerneoGallery from "./plugins/gallery.js";
import WerneoLists from "./plugins/lists.js";
import WerneoModalButtons from "./plugins/modalButtons.js";
import WerneoModals from "./plugins/modals.js";
import WerneoNavigation from "./plugins/navigation.js";
import WerneoTabs from "./plugins/tabs.js";
import WerneoTimeline from "./plugins/timeline.js";
import WerneoTreeView from "./plugins/treeView.js";

window.werneo = new Werneo();

/// register plugins
window.werneo.registerPlugin('ajaxLoader',new WerneoAjaxLoader());
window.werneo.registerPlugin('breadcrumbs',new WerneoBreadcrumbs());
window.werneo.registerPlugin('dropdowns',new WerneoDropdowns());
window.werneo.registerPlugin('dynaFilter',new WerneoDynaFilter());
window.werneo.registerPlugin('flashMessages',new WerneoFlashMessages());
window.werneo.registerPlugin('gallery',new WerneoGallery());
window.werneo.registerPlugin('lists',new WerneoLists());
window.werneo.registerPlugin('modalButtons',new WerneoModalButtons());
window.werneo.registerPlugin('modals',new WerneoModals());
window.werneo.registerPlugin('navigation',new WerneoNavigation());
window.werneo.registerPlugin('tabs',new WerneoTabs());
window.werneo.registerPlugin('timeline',new WerneoTimeline());
window.werneo.registerPlugin('treeView',new WerneoTreeView());

window.werneo.invoke();
				

Compatibility

Chrome Firefox Opera Edge Safari IE iOS Safari Opera Mini 2 Android Browser Chrome for Android Edge Mobile
Backgrounds
Badges
Breadcrumbs
Buttons
Code
Dropdowns
Dynamic Filters
Flash Messages
Forms 5 4
Gallery
Groups 1 1 1 1 1 1
Lists 3 3
Modal Buttons
Modals
Navigation
Pagination
Progressbars
Scrollbars
Tables
Tabs
Timeline
Tree View
Typography
Widgets

1: IE, Android Browser, Opera Mini, and Safari don't handle flexbox growing/shrinking ideally inside a group (functionality is not affected)

2: Opera Mini doesn't render borders (functionality is not affected)

3: Opera Mini and Safari don't support checking an item and displaying hover overlay (other listed mobile browsers support this via "press & hold")

4: Opera Mini renders checkbox and radio checkers slightly missplaced (some 2px higher; functionality is not affected)

5: Firefox renders file input field with its content at the bottom line of the field (functionality is not affected)