Spark
v1
  • Spark v3
  • Spark v2
  • Spark v1
  • Design Foundations
    • Animations
    • Color Palette
    • Iconography
    • Layout Guidelines
    • Sabre Logo Guidelines
    • Guiding Principles
    • Spark Themes
    • Typography
    • Voice and Tone
    • View All Foundations
  • UI Components
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout
    • View All Components
  • Resources
    • Designer
      • Application Icons
    • Developer
      • Browser Support
      • Changelog
      • CSS Helper Classes
      • Javascript API Documentation
        • Back to Main Menu
        • Javscript API Documentation
        • Main
        • components/ base.js
          • BaseComponent
          • requestAnimationFrame
          • cancelAnimationFrame
          • breakpoints
          • exportjQuery
          • loadOrCreateJQueryInstance
          • setParams
          • unsetParams
          • toggleClass
          • addClass
          • removeClass
          • hasClass
          • getChildIndex
          • elementHasParent
          • elementMatches
          • getElementMatchingParent
          • getElementMatchingParents
          • getElementOffset
          • getNodeListIndex
          • trim
          • round
          • appendChildren
          • insertBefore
          • getBreakpoint
          • remove
          • triggerEvent
          • scrollWindowTo
          • tween
          • copyAttributes
          • wrapElement
          • range
          • getSiblingBefore
          • getSiblingAfter
          • getMatchingChild
          • getElementMatchingChildren
        • components / calendar-popover.js
        • components/ carousel.js
          • Carousel
          • _setParams
          • defaults
          • _whitelistedParams
          • _carouselItem
          • _init
          • remove
          • _pause
          • _setPause
          • _autoAdvance
          • _setupListeners
          • _removeListeners
          • _handleVisibleChildrenH
          • _forward
          • _back
          • _movestart
          • _move
          • _moveend
          • _resize
          • change
          • _touchstart
          • _touchmove
          • _touchend
          • _mousedown
          • _mousemove
          • _mouseup
          • _click
          • _velocity
          • _scrollToClicked
          • _scrollTo
          • _rafHandlerH
          • _rafCancel
          • _interiaScroll
          • _settle
          • _transformItems
          • _setTransformItems
          • _addTransform
          • _leftbound
          • _rightbound
          • _updateSelected
          • _selectedItem
          • _setTransform
        • components/ date-input.js
          • DateInput
          • _setParams
          • setError
          • _whitelistedParams
          • defaults
          • show
          • hide
          • remove
          • setValue
          • validate
          • updateInput
          • focus
          • focusNext
          • focusPrevious
          • hasPartialValue
          • _cacheElements
          • _parseParams
          • _initializeInputs
          • _initializeInputPieces
          • _initializeTypeaheadPiece
          • _initializeSelectPiece
          • _convertLabel
          • _validateTypeaheads
          • _validateTypeaheadBounds
          • _padTypeaheads
          • _padTypeahead
          • _hasTypeaheadValue
          • _validateSelects
          • _getMaxDaysInMonth
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onVisibleChildren
          • update
          • _runTypeaheads
          • _updateClass
          • _getTypeaheadByElement
          • _showDateText
          • _hideDateText
          • _createDateTextEl
          • _getDateText
          • _onPieceChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
          • _onInputChange
          • _onClick
        • components/ expand.js
          • Expand
          • _setParams
          • defaults
          • _whitelistedParams
          • expand
          • collapse
          • toggle
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onClick
          • _onKeydown
        • components/ header.js
          • Header
          • _setParams
          • _whitelistedParams
          • defaults
          • update
          • checkFixed
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCurrentBreakpoint
          • _createPlaceholder
          • _removePlaceholder
          • _disablePlaceholderLinkTab
          • _createListMore
          • _determineInitialSize
          • _determineMenuSize
          • _listenForReadyStateChange
          • _isMenuBreakpoint
          • _getItemsToShowAndHide
          • _ensureActiveAtMoreSwapIndex
          • _addListMore
          • _removeListMore
          • _resetMenuChildren
          • _toggleCollapsed
          • _enableTopLevelToggling
          • _disableTopLevelToggling
          • _onResize
          • _onScroll
          • _onMoreClick
          • _onToggleClick
          • _onNavClick
        • components/ menu.js
          • Menu
          • _setParams
          • _whitelistedParams
          • defaults
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _toggleItem
          • _checkAnimation
          • _createMenuAnimationWrapper
          • _animateListChange
          • _appendList
          • _removeLastList
          • _removeAllCachedLists
          • _getNextList
          • _openItem
          • _closeItem
          • _activateItem
          • _activateItemParents
          • _deactivateItems
          • _deactivateItemSiblings
          • _openActiveParents
          • _cachedListContainsID
          • _onClick
          • _onFocus
          • _onBlur
        • components/ modal.js
          • Modal
          • _setParams
          • defaults
          • _whitelistedParams
          • open
          • close
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _onClick
          • _onModalClick
          • _onKeyup
        • components / number-picker.js
        • components/ number-selector.js
          • NumberSelector
          • _setParams
          • _whitelistedParams
          • defaults
          • value
          • increment
          • decrement
          • disable
          • enable
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getMin
          • _getMax
          • _getStep
          • _getInputPropAsNumber
          • _getConformedNumber
          • _onClick
          • _onChange
        • components/ popover.js
          • Popover
          • _setParams
          • _whitelistedParams
          • defaults
          • open
          • close
          • toggle
          • setContent
          • pause
          • resume
          • _cacheElements
          • _moveContent
          • _determineDirectionAndAnchor
          • _updateAttributes
          • _updatePosition
          • _clearPosition
          • _updateCaretAnchorPosition
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _createContentEl
          • _createCaretEl
          • _onClick
          • _onContentClick
          • _onWindowClick
          • _onWindowResize
        • components/ progress-indicator.js
          • ProgressIndicator
          • _setParams
          • _whitelistedParams
          • defaults
          • set
          • _cacheElements
          • _cacheSize
          • _determineSize
          • _buildSVG
          • _parseNotes
          • _updateDOM
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onResize
        • components/ range-slider.js
          • RangeSlider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _updateDisabledClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onVisibleChildren
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
        • components / scroll-to-top.js
        • components/ select-input.js
          • SelectInput
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
        • components/ slider.js
          • Slider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _truncateValueText
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onMouseOut
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
          • _onWindowClick
        • components / step-indicator.js
        • components/ table.js
          • Table
          • _setParams
          • _whitelistedParams
          • defaults
          • disableCell
          • enableCell
          • disableRow
          • enableRow
          • disableColumn
          • enableColumn
          • remove
          • activateRow
          • activateRows
          • deactivateRow
          • deactivateRows
          • getActiveRows
          • _cacheElements
          • _parseParams
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addResizeListeners
          • _removeResizeListeners
          • _toggleRowActive
          • _makeRowActive
          • _makeRowInActive
          • _toggleRowsActive
          • _toggleSelectAll
          • _uncheckSelectAll
          • _deactivateAllInputs
          • _deactivateInputs
          • _deactivateInput
          • _activateInputs
          • _activateInput
          • _activateInputOrFocusDown
          • _disableRowsColumnsCells
          • _focusUp
          • _focusDown
          • _focusUpDown
          • _focusLeft
          • _focusRight
          • _focusLeftRight
          • _checkDoubleClick
          • _clearClicked
          • _editRow
          • _cancelRow
          • _saveRow
          • _deleteRow
          • _confirmDelete
          • _updateBindings
          • _initResize
          • _initRows
          • _sizeColumns
          • _initExpands
          • _onBeforeExpand
          • _onClick
          • _onChange
          • _onFocus
          • _onBlur
          • _onKeydown
          • _onTouchstart
          • _onTouchend
          • _onTouchHold
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
        • components/ tabs.js
          • Tabs
          • _setParams
          • _whitelistedParams
          • defaults
          • setActive
          • start
          • stop
          • move
          • focus
          • remove
          • update
          • _findPanelByName
          • _findPanelByTab
          • _findTabByPanel
          • _findTabByChildElement
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _determineSize
          • _determineMinMax
          • _enableAnimation
          • _disableAnimation
          • _updatePosition
          • _checkX
          • _onTabListClick
          • _onResize
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onScroll
          • _onScrollEnd
          • _onLeftClick
          • _onRightClick
          • _onFocus
          • _onBlur
        • components/ text-input.js
          • TextInput
          • _setParams
          • _whitelistedParams
          • defaults
          • show
          • hide
          • validate
          • setError
          • clearError
          • setWarning
          • clearWarning
          • setSuccess
          • clearSuccess
          • clearMessages
          • setMessage
          • _showMessage
          • _hideMessage
          • _isMessageVisible
          • _cacheElements
          • _parseParams
          • _setCharactersCount
          • _setTextareaHeight
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
          • _onClearClick
          • _onTogglePasswordViewHide
        • components/ toggle-switch.js
          • ToggleSwitch
          • _getElementMatchingParent
          • defaults
          • toggle
          • activate
          • deactivate
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onKeydown
        • components/ toolbar.js
          • Toolbar
          • _setParams
          • defaults
          • _whitelistedParams
          • toolbarItem
          • toggleDropdown
          • handleClick
          • _closeAll
          • _getOpenItems
          • _closeItems
          • _init
          • _setupListeners
          • _removeListeners
          • remove
          • _handleBlurH
          • _handleFocusH
          • _focusLast
          • _handleKeyDownH
          • _handleVisibleChildrenH
          • _handleWindowClickH
          • _toggleShowMore
          • _positionShowMore
          • _handleResizeH
          • _calculateStyles
          • _prioritySort
          • _orderSort
          • change
        • helpers/ animate-height.js
          • getInverseToggleValue
          • animateHeight
        • helpers/ build-select.js
          • buildSelect
        • helpers/ date-select.js
          • DateSelect
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _createDefaultElement
          • _createSelect
          • _getDefaultMonthNames
          • _getTypeText
          • _bindEventListenerCallbacks
          • _onSelectChange
        • helpers/ date-typeahead.js
          • DateTypeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • run
          • pause
          • resume
          • _createDefaultElement
          • _createTypeahead
          • _bindEventListenerCallbacks
          • _lengthToFormat
          • _checkValidity
          • _onTypeaheadChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
        • helpers/ date.js
          • create
          • year
          • year
          • month
          • month
          • day
          • day
          • set
          • getMonthName
          • monthName
          • getMonthNames
          • getMonthNameShort
          • monthNameShort
          • getMonthNamesShort
          • setMonthNames
          • setMonthNamesShort
          • getDayOfWeek
          • dayOfWeek
          • getDayName
          • dayName
          • getDayNames
          • getDayNameShort
          • dayNameShort
          • getDayNamesShort
          • setDayNames
          • setDayNamesShort
          • getWeekStartsOn
          • setWeekStartsOn
          • now
          • getNextYear
          • nextYear
          • getWeekStart
          • weekStart
          • getMonthStart
          • monthStart
          • getNextWeek
          • nextWeek
          • getNextDay
          • nextDay
          • getNextMonth
          • nextMonth
          • getPreviousYear
          • previousYear
          • getPreviousWeek
          • previousWeek
          • getPreviousDay
          • previousDay
          • getPreviousMonth
          • previousMonth
          • getMonthEnd
          • monthEnd
          • equal
          • equalDay
          • equalWeek
          • equalMonth
          • equalYear
          • before
          • beforeDay
          • beforeWeek
          • beforeMonth
          • beforeYear
          • after
          • afterDay
          • afterWeek
          • afterMonth
          • afterYear
          • earliest
          • latest
          • clone
          • _checkComparisonArgs
          • _instanceCheck
          • _clearCache
        • helpers/ debounce.js
          • debounce
        • helpers/ each.js
          • each
        • helpers/ outer-height.js
          • outerHeight
        • helpers / pad-number.js
        • helpers/ parse-date-format.js
          • map
          • getValues
          • getString
          • parseDateFormat
        • helpers / set-caret.js
        • helpers/ store-form-data.js
          • findAll
          • store
          • restore
          • clear
        • helpers/ transform.js
          • transform
        • helpers/ typeahead.js
          • Typeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • run
          • addCharacterAtIndex
          • addCharacterAtCaret
          • removeCharacterAtIndex
          • removeCharacterAtCaret
          • removeCharactersInRange
          • setValue
          • getValue
          • moveCaret
          • moveCaretToEnd
          • moveCaretToStart
          • pause
          • resume
          • clear
          • _cacheElements
          • _parseParams
          • _parseFormat
          • _parseCharacters
          • _createDefaultInputElement
          • _createDefaultPlaceholderElement
          • _getCharactersAllowedCount
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCaretStart
          • _getCaretEnd
          • _caretIsAtEnd
          • _setCaretPosition
          • _getCaretPositionTranslated
          • _getCaretStartTranslated
          • _getCaretEndTranslated
          • _setCaretPositionTranslated
          • _moveCaret
          • _emptyWhenOnlyPlaceholders
          • _maintainFocus
          • _updateWidth
          • _onKeydown
          • _onInput
          • _onFocus
          • _onBlur
          • _onPlaceholderClick
          • _onBackspace
        • index.js
          • exports
    • Roadmap
    • View All Resources
  • About
  • Contact
Spark
v1
  • Spark v3
  • Spark v2
  • Spark v1
  • Design Foundations
    • Animations
    • Color Palette
    • Iconography
    • Layout Guidelines
    • Sabre Logo Guidelines
    • Guiding Principles
    • Spark Themes
    • Typography
    • Voice and Tone
    • View All Foundations
  • UI Components
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout
    • View All Components
  • Resources
    • Designer
      • Application Icons
    • Developer
      • Browser Support
      • Changelog
      • CSS Helper Classes
      • Javascript API Documentation
        • Back to Main Menu
        • Javscript API Documentation
        • Main
        • components/ base.js
          • BaseComponent
          • requestAnimationFrame
          • cancelAnimationFrame
          • breakpoints
          • exportjQuery
          • loadOrCreateJQueryInstance
          • setParams
          • unsetParams
          • toggleClass
          • addClass
          • removeClass
          • hasClass
          • getChildIndex
          • elementHasParent
          • elementMatches
          • getElementMatchingParent
          • getElementMatchingParents
          • getElementOffset
          • getNodeListIndex
          • trim
          • round
          • appendChildren
          • insertBefore
          • getBreakpoint
          • remove
          • triggerEvent
          • scrollWindowTo
          • tween
          • copyAttributes
          • wrapElement
          • range
          • getSiblingBefore
          • getSiblingAfter
          • getMatchingChild
          • getElementMatchingChildren
        • components / calendar-popover.js
        • components/ carousel.js
          • Carousel
          • _setParams
          • defaults
          • _whitelistedParams
          • _carouselItem
          • _init
          • remove
          • _pause
          • _setPause
          • _autoAdvance
          • _setupListeners
          • _removeListeners
          • _handleVisibleChildrenH
          • _forward
          • _back
          • _movestart
          • _move
          • _moveend
          • _resize
          • change
          • _touchstart
          • _touchmove
          • _touchend
          • _mousedown
          • _mousemove
          • _mouseup
          • _click
          • _velocity
          • _scrollToClicked
          • _scrollTo
          • _rafHandlerH
          • _rafCancel
          • _interiaScroll
          • _settle
          • _transformItems
          • _setTransformItems
          • _addTransform
          • _leftbound
          • _rightbound
          • _updateSelected
          • _selectedItem
          • _setTransform
        • components/ date-input.js
          • DateInput
          • _setParams
          • setError
          • _whitelistedParams
          • defaults
          • show
          • hide
          • remove
          • setValue
          • validate
          • updateInput
          • focus
          • focusNext
          • focusPrevious
          • hasPartialValue
          • _cacheElements
          • _parseParams
          • _initializeInputs
          • _initializeInputPieces
          • _initializeTypeaheadPiece
          • _initializeSelectPiece
          • _convertLabel
          • _validateTypeaheads
          • _validateTypeaheadBounds
          • _padTypeaheads
          • _padTypeahead
          • _hasTypeaheadValue
          • _validateSelects
          • _getMaxDaysInMonth
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onVisibleChildren
          • update
          • _runTypeaheads
          • _updateClass
          • _getTypeaheadByElement
          • _showDateText
          • _hideDateText
          • _createDateTextEl
          • _getDateText
          • _onPieceChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
          • _onInputChange
          • _onClick
        • components/ expand.js
          • Expand
          • _setParams
          • defaults
          • _whitelistedParams
          • expand
          • collapse
          • toggle
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onClick
          • _onKeydown
        • components/ header.js
          • Header
          • _setParams
          • _whitelistedParams
          • defaults
          • update
          • checkFixed
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCurrentBreakpoint
          • _createPlaceholder
          • _removePlaceholder
          • _disablePlaceholderLinkTab
          • _createListMore
          • _determineInitialSize
          • _determineMenuSize
          • _listenForReadyStateChange
          • _isMenuBreakpoint
          • _getItemsToShowAndHide
          • _ensureActiveAtMoreSwapIndex
          • _addListMore
          • _removeListMore
          • _resetMenuChildren
          • _toggleCollapsed
          • _enableTopLevelToggling
          • _disableTopLevelToggling
          • _onResize
          • _onScroll
          • _onMoreClick
          • _onToggleClick
          • _onNavClick
        • components/ menu.js
          • Menu
          • _setParams
          • _whitelistedParams
          • defaults
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _toggleItem
          • _checkAnimation
          • _createMenuAnimationWrapper
          • _animateListChange
          • _appendList
          • _removeLastList
          • _removeAllCachedLists
          • _getNextList
          • _openItem
          • _closeItem
          • _activateItem
          • _activateItemParents
          • _deactivateItems
          • _deactivateItemSiblings
          • _openActiveParents
          • _cachedListContainsID
          • _onClick
          • _onFocus
          • _onBlur
        • components/ modal.js
          • Modal
          • _setParams
          • defaults
          • _whitelistedParams
          • open
          • close
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _onClick
          • _onModalClick
          • _onKeyup
        • components / number-picker.js
        • components/ number-selector.js
          • NumberSelector
          • _setParams
          • _whitelistedParams
          • defaults
          • value
          • increment
          • decrement
          • disable
          • enable
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getMin
          • _getMax
          • _getStep
          • _getInputPropAsNumber
          • _getConformedNumber
          • _onClick
          • _onChange
        • components/ popover.js
          • Popover
          • _setParams
          • _whitelistedParams
          • defaults
          • open
          • close
          • toggle
          • setContent
          • pause
          • resume
          • _cacheElements
          • _moveContent
          • _determineDirectionAndAnchor
          • _updateAttributes
          • _updatePosition
          • _clearPosition
          • _updateCaretAnchorPosition
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _createContentEl
          • _createCaretEl
          • _onClick
          • _onContentClick
          • _onWindowClick
          • _onWindowResize
        • components/ progress-indicator.js
          • ProgressIndicator
          • _setParams
          • _whitelistedParams
          • defaults
          • set
          • _cacheElements
          • _cacheSize
          • _determineSize
          • _buildSVG
          • _parseNotes
          • _updateDOM
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onResize
        • components/ range-slider.js
          • RangeSlider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _updateDisabledClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onVisibleChildren
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
        • components / scroll-to-top.js
        • components/ select-input.js
          • SelectInput
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
        • components/ slider.js
          • Slider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _truncateValueText
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onMouseOut
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
          • _onWindowClick
        • components / step-indicator.js
        • components/ table.js
          • Table
          • _setParams
          • _whitelistedParams
          • defaults
          • disableCell
          • enableCell
          • disableRow
          • enableRow
          • disableColumn
          • enableColumn
          • remove
          • activateRow
          • activateRows
          • deactivateRow
          • deactivateRows
          • getActiveRows
          • _cacheElements
          • _parseParams
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addResizeListeners
          • _removeResizeListeners
          • _toggleRowActive
          • _makeRowActive
          • _makeRowInActive
          • _toggleRowsActive
          • _toggleSelectAll
          • _uncheckSelectAll
          • _deactivateAllInputs
          • _deactivateInputs
          • _deactivateInput
          • _activateInputs
          • _activateInput
          • _activateInputOrFocusDown
          • _disableRowsColumnsCells
          • _focusUp
          • _focusDown
          • _focusUpDown
          • _focusLeft
          • _focusRight
          • _focusLeftRight
          • _checkDoubleClick
          • _clearClicked
          • _editRow
          • _cancelRow
          • _saveRow
          • _deleteRow
          • _confirmDelete
          • _updateBindings
          • _initResize
          • _initRows
          • _sizeColumns
          • _initExpands
          • _onBeforeExpand
          • _onClick
          • _onChange
          • _onFocus
          • _onBlur
          • _onKeydown
          • _onTouchstart
          • _onTouchend
          • _onTouchHold
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
        • components/ tabs.js
          • Tabs
          • _setParams
          • _whitelistedParams
          • defaults
          • setActive
          • start
          • stop
          • move
          • focus
          • remove
          • update
          • _findPanelByName
          • _findPanelByTab
          • _findTabByPanel
          • _findTabByChildElement
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _determineSize
          • _determineMinMax
          • _enableAnimation
          • _disableAnimation
          • _updatePosition
          • _checkX
          • _onTabListClick
          • _onResize
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onScroll
          • _onScrollEnd
          • _onLeftClick
          • _onRightClick
          • _onFocus
          • _onBlur
        • components/ text-input.js
          • TextInput
          • _setParams
          • _whitelistedParams
          • defaults
          • show
          • hide
          • validate
          • setError
          • clearError
          • setWarning
          • clearWarning
          • setSuccess
          • clearSuccess
          • clearMessages
          • setMessage
          • _showMessage
          • _hideMessage
          • _isMessageVisible
          • _cacheElements
          • _parseParams
          • _setCharactersCount
          • _setTextareaHeight
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
          • _onClearClick
          • _onTogglePasswordViewHide
        • components/ toggle-switch.js
          • ToggleSwitch
          • _getElementMatchingParent
          • defaults
          • toggle
          • activate
          • deactivate
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onKeydown
        • components/ toolbar.js
          • Toolbar
          • _setParams
          • defaults
          • _whitelistedParams
          • toolbarItem
          • toggleDropdown
          • handleClick
          • _closeAll
          • _getOpenItems
          • _closeItems
          • _init
          • _setupListeners
          • _removeListeners
          • remove
          • _handleBlurH
          • _handleFocusH
          • _focusLast
          • _handleKeyDownH
          • _handleVisibleChildrenH
          • _handleWindowClickH
          • _toggleShowMore
          • _positionShowMore
          • _handleResizeH
          • _calculateStyles
          • _prioritySort
          • _orderSort
          • change
        • helpers/ animate-height.js
          • getInverseToggleValue
          • animateHeight
        • helpers/ build-select.js
          • buildSelect
        • helpers/ date-select.js
          • DateSelect
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _createDefaultElement
          • _createSelect
          • _getDefaultMonthNames
          • _getTypeText
          • _bindEventListenerCallbacks
          • _onSelectChange
        • helpers/ date-typeahead.js
          • DateTypeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • run
          • pause
          • resume
          • _createDefaultElement
          • _createTypeahead
          • _bindEventListenerCallbacks
          • _lengthToFormat
          • _checkValidity
          • _onTypeaheadChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
        • helpers/ date.js
          • create
          • year
          • year
          • month
          • month
          • day
          • day
          • set
          • getMonthName
          • monthName
          • getMonthNames
          • getMonthNameShort
          • monthNameShort
          • getMonthNamesShort
          • setMonthNames
          • setMonthNamesShort
          • getDayOfWeek
          • dayOfWeek
          • getDayName
          • dayName
          • getDayNames
          • getDayNameShort
          • dayNameShort
          • getDayNamesShort
          • setDayNames
          • setDayNamesShort
          • getWeekStartsOn
          • setWeekStartsOn
          • now
          • getNextYear
          • nextYear
          • getWeekStart
          • weekStart
          • getMonthStart
          • monthStart
          • getNextWeek
          • nextWeek
          • getNextDay
          • nextDay
          • getNextMonth
          • nextMonth
          • getPreviousYear
          • previousYear
          • getPreviousWeek
          • previousWeek
          • getPreviousDay
          • previousDay
          • getPreviousMonth
          • previousMonth
          • getMonthEnd
          • monthEnd
          • equal
          • equalDay
          • equalWeek
          • equalMonth
          • equalYear
          • before
          • beforeDay
          • beforeWeek
          • beforeMonth
          • beforeYear
          • after
          • afterDay
          • afterWeek
          • afterMonth
          • afterYear
          • earliest
          • latest
          • clone
          • _checkComparisonArgs
          • _instanceCheck
          • _clearCache
        • helpers/ debounce.js
          • debounce
        • helpers/ each.js
          • each
        • helpers/ outer-height.js
          • outerHeight
        • helpers / pad-number.js
        • helpers/ parse-date-format.js
          • map
          • getValues
          • getString
          • parseDateFormat
        • helpers / set-caret.js
        • helpers/ store-form-data.js
          • findAll
          • store
          • restore
          • clear
        • helpers/ transform.js
          • transform
        • helpers/ typeahead.js
          • Typeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • run
          • addCharacterAtIndex
          • addCharacterAtCaret
          • removeCharacterAtIndex
          • removeCharacterAtCaret
          • removeCharactersInRange
          • setValue
          • getValue
          • moveCaret
          • moveCaretToEnd
          • moveCaretToStart
          • pause
          • resume
          • clear
          • _cacheElements
          • _parseParams
          • _parseFormat
          • _parseCharacters
          • _createDefaultInputElement
          • _createDefaultPlaceholderElement
          • _getCharactersAllowedCount
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCaretStart
          • _getCaretEnd
          • _caretIsAtEnd
          • _setCaretPosition
          • _getCaretPositionTranslated
          • _getCaretStartTranslated
          • _getCaretEndTranslated
          • _setCaretPositionTranslated
          • _moveCaret
          • _emptyWhenOnlyPlaceholders
          • _maintainFocus
          • _updateWidth
          • _onKeydown
          • _onInput
          • _onFocus
          • _onBlur
          • _onPlaceholderClick
          • _onBackspace
        • index.js
          • exports
    • Roadmap
    • View All Resources
  • About
  • Contact
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout

    Panel Menu

    Panel menus are used to display links related to a section of an application.

    • Overview
    • Guidelines
    • Developer

    Single-Level Example

    • First Level A
    • First Level C
    • First Level D


    When to Use

    • To display navigational links when it is necessary for a user to have persistent access to the links from the current screen (desktop or tablet).
    • When a section of an application has more than three levels of navigation (since only three levels may appear in the Header navigation).
    • A standard panel menu displays links that take the user to a new screen. When using a panel menu to display intra-page links, use the appropriate visual treatment (see example).

    When Not to Use

    • For secondary and tertiary navigation that the user does not need visible on the screen, use the dropdown menu in the Header.

    Variations

    • Two-Level Example
    • Three-Level Example
    • Group-Label Example
    • Intra-Page Example

    Usage

    • Panel menus may include up to three levels of nested links.
    • Do not duplicate Header navigation in the side panel menu.
    • When more than one level appears, use the Expand/Collapse treatment.
    • Groups of links may include a group label (a heading that doesn’t have a corresponding page).
    • Panel menus typically appear on the left side of the screen.
    • On small and xsmall screen sizes (below 796 px), the links in the panel menu appear within the slide-out menu. See Header navigation for details.

    Variations

    Two-level Example

    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
      • Second Level c
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc


    Three-level Example

    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
        • Third-level Item I
        • Third-level Item II
        • Third-level Item III
        • Third-level Item IV
      • Second Level c
      • Second Level d
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc


    Group-Label Example

    • Group Title Alpha
    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
        • Third-level Item I
        • Third-level Item II
        • Third-level Item III
        • Third-level Item IV
      • Second Level c
      • Second Level d
    • Group Title Beta
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc


    Intra-Page Example

    • First Level A
    • First Level B
      • (Intra-Page) Second Level a
      • Second Level b
      • (Intra-Page) Second Level c
    • (Intra-Page) First Level C
    • First Level D
      • (Intra-Page) Second Level aa
      • (Intra-Page) Second Level bb
      • (Intra-Page) Second Level cc


    Developer Notes

    A panel menu is created by adding the .spark-menu and .spark-menu--panel classes to an element, preferably a <nav>. The menu items should be contained inside of a <ul> with a class of .spark-menu__list. Each item should have a class of .spark-menu__list-item.

    The link for a list item should be an <a> tag with a class of .spark-menu__list-link.

    For nested lists, additional .spark-menu__list elements should be placed inside of a .spark-menu__list-item (but not inside of the .spark-menu__list-link). If an item contains a nested list but is not itself a link to a page, the .spark-menu__list-link should also have a class of .spark-menu__list-expand.

    If an item is a link to a page and also has a nested list of items, an element with a class of .spark-menu__list-links should be wrapped around the .spark-menu__list-link element. Additionally, a second <a> tag with a class of .spark-menu__list-expand should be added.

    Adding a class of .active to a list item will cause it to become highlighted. If the active item is part of a nested list, any parent items should have a class of .has-active-child. This will add styling to denote that a sub-item is active. Toggling a class of .open on a list item with a nested list will show/hide the nested list.

    The menu component requires accompanying Javascript. Instantiate it using new Spark.Menu(el) or $(el).sparkMenu().

    Single Level Example

    • First Level A
    • First Level C
    • First Level D
    • HTML
    • JS
    <nav class="spark-menu spark-menu--panel col-xs-12 col-sm-8 col-col-md-6 col-lg-5 col-xl-4">
      <ul class="spark-menu__list">
        <li class="spark-menu__list-item">
          <a class="spark-menu__list-link">First Level A</a>
        </li>
        <li class="spark-menu__list-item active">
          <a class="spark-menu__list-link">First Level C</a>
        </li>
        <li class="spark-menu__list-item">
          <a class="spark-menu__list-link">First Level D</a>
        </li>
      </ul>
    </nav>
    // Vanilla JS
    var el = document.querySelector('.spark-menu:not(.spark-header__menu)');
    var menuInstance = new Spark.Menu(el);
    
    // jQuery
    $('.spark-menu:not(.spark-header__menu)').sparkMenu();

    Two-level Example

    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
      • Second Level c
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc
    • HTML
    • JS
    <nav class="spark-menu spark-menu--panel col-xs-12 col-sm-8 col-md-6 col-lg-5 col-xl-4" role="menu">
      <ul class="spark-menu__list">
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level A</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <span class="spark-menu__list-links">
            <a class="spark-menu__list-link" href="javascript: void(0);">First Level B</a>
            <a class="spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox" title="Expand"></a>
          </span>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level a</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level b</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level c</a>
            </li>
          </ul>
        </li>
        <li class="spark-menu__list-item active" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level C</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox">First Level D</a>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level aa</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level bb</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level cc</a>
            </li>
          </ul>
        </li>
      </ul>
    </nav>
    // Vanilla JS
    var el = document.querySelector('.spark-menu:not(.spark-header__menu)');
    var menuInstance = new Spark.Menu(el);
    
    // jQuery
    $('.spark-menu:not(.spark-header__menu)').sparkMenu();

    Three-level Example

    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
        • Third-level Item I
        • Third-level Item II
        • Third-level Item III
        • Third-level Item IV
      • Second Level c
      • Second Level d
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc
    • HTML
    • JS
    <nav class="spark-menu spark-menu--panel col-xs-12 col-sm-8 col-md-6 col-lg-5 col-xl-4" role="menu">
      <ul class="spark-menu__list">
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level A</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <span class="spark-menu__list-links">
            <a class="spark-menu__list-link" href="javascript: void(0);">First Level B</a>
            <a class="spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox" title="Expand"></a>
          </span>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level a</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <span class="spark-menu__list-links">
                <a class="spark-menu__list-link spark-menu__list-expand" role="menuitemcheckbox" href="javascript: void(0);" >Second Level b</a>
              </span>
              <ul class="spark-menu__list">
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item I</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item II</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item III</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item IV</a>
                </li>
              </ul>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level c</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level d</a>
            </li>
          </ul>
        </li>
        <li class="spark-menu__list-item active" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level C</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link spark-menu__list-expand" role="menuitemcheckbox" href="javascript: void(0);" >First Level D</a>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level aa</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level bb</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level cc</a>
            </li>
          </ul>
        </li>
      </ul>
    </nav>
    // Vanilla JS
    var el = document.querySelector('.spark-menu:not(.spark-header__menu)');
    var menuInstance = new Spark.Menu(el);
    
    // jQuery
    $('.spark-menu:not(.spark-header__menu)').sparkMenu();

    Group-Label Example

    • Group Title Alpha
    • First Level A
    • First Level B
      • Second Level a
      • Second Level b
        • Third-level Item I
        • Third-level Item II
        • Third-level Item III
        • Third-level Item IV
      • Second Level c
      • Second Level d
    • Group Title Beta
    • First Level C
    • First Level D
      • Second Level aa
      • Second Level bb
      • Second Level cc
    • HTML
    • JS
    <nav class="spark-menu spark-menu--panel col-xs-12 col-sm-8 col-md-6 col-lg-5 col-xl-4" role="menu">
      <ul class="spark-menu__list">
        <li class="spark-menu__list-title">Group Title Alpha</li>
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level A</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <span class="spark-menu__list-links">
            <a class="spark-menu__list-link" href="javascript: void(0);">First Level B</a>
            <a class="spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox" title="Expand"></a>
          </span>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level a</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <span class="spark-menu__list-links">
                <a class="spark-menu__list-link spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox">Second Level b</a>
              </span>
              <ul class="spark-menu__list">
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item I</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item II</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item III</a>
                </li>
                <li class="spark-menu__list-item" role="menuitem">
                  <a class="spark-menu__list-link" href="javascript: void(0);">Third-level Item IV</a>
                </li>
              </ul>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level c</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level d</a>
            </li>
          </ul>
        </li>
        <li class="spark-menu__list-title">Group Title Beta</li>
        <li class="spark-menu__list-item active" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level C</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox">First Level D</a>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level aa</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level bb</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link" href="javascript: void(0);">Second Level cc</a>
            </li>
          </ul>
        </li>
      </ul>
    </nav>
    // Vanilla JS
    var el = document.querySelector('.spark-menu:not(.spark-header__menu)');
    var menuInstance = new Spark.Menu(el);
    
    // jQuery
    $('.spark-menu:not(.spark-header__menu)').sparkMenu();

    Intra-Page Example

    • First Level A
    • First Level B
      • (Intra-Page) Second Level a
      • Second Level b
      • (Intra-Page) Second Level c
    • (Intra-Page) First Level C
    • First Level D
      • (Intra-Page) Second Level aa
      • (Intra-Page) Second Level bb
      • (Intra-Page) Second Level cc
    • HTML
    • JS
    <nav class="spark-menu spark-menu--panel col-xs-12 col-sm-8 col-md-6 col-lg-5 col-xl-4" role="menu">
      <ul class="spark-menu__list">
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link" href="javascript: void(0);">First Level A</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <span class="spark-menu__list-links">
            <a class="spark-menu__list-link" href="javascript: void(0);">First Level B</a>
            <a class="spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox" title="Expand"></a>
          </span>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) Second Level a</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">Second Level b</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) Second Level c</a>
            </li>
          </ul>
        </li>
        <li class="spark-menu__list-item active" role="menuitem">
          <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) First Level C</a>
        </li>
        <li class="spark-menu__list-item" role="menuitem">
          <a class="spark-menu__list-link spark-menu__list-expand" href="javascript: void(0);" role="menuitemcheckbox">First Level D</a>
          <ul class="spark-menu__list">
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) Second Level aa</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) Second Level bb</a>
            </li>
            <li class="spark-menu__list-item" role="menuitem">
              <a class="spark-menu__list-link spark-menu__list-link--in-page" href="javascript: void(0);">(Intra-Page) Second Level cc</a>
            </li>
          </ul>
        </li>
      </ul>
    </nav>
    // Vanilla JS
    var el = document.querySelector('.spark-menu:not(.spark-header__menu)');
    var menuInstance = new Spark.Menu(el);
    
    // jQuery
    $('.spark-menu:not(.spark-header__menu)').sparkMenu();
    • Single-Level Example
      • When to Use
      • When Not to Use
      • Variations
    • Usage
    • Variations
      • Two-level Example
      • Three-level Example
      • Group-Label Example
      • Intra-Page Example
    • Developer Notes
      • Single Level Example
      • Two-level Example
      • Three-level Example
      • Group-Label Example
      • Intra-Page Example
    © 2015-16 Sabre
    • Contact Us
    • Report a Bug