Invision UI v.19.6.0-0

Getting Started

  • Running Invision UI
  • UI Component Anatomy
  • Authoring SCSS
  • Authoring Presentational Behavior

Component Foundations

  • SCSS Authoring
    • Mixins & Variables
    • Stateful Classes
  • State Guidance
    • Empty/Zero State
    • Loading State
  • Utilities
    • Align
    • Display
    • Flexbox
    • Font Size
    • Layout
    • Offset
    • Position
    • Overflow
    • Size
    • Spacing
    • Text
  • Layout
    • Arrange [Deprectated]
    • Divided Columns
    • Embed Video
    • Full and Center
    • Fill [Deprectated]
    • Grid
    • Media Blocks
    • Panels
    • Vertical Layouts
  • Media Queries
  • Angular Behaviors
    • App Theme Directive
    • Auto Focus Input
    • Filters
    • Popup (modal dialog) Manager
    • Tether (tooltip/dropdown) Manager
    • Resize Sensor
    • Watchers

UI Component Library

  • Content & Containment
    • Active Translation
    • Auto Fit Text
    • Address
    • Basic & Input Table
    • Brand Logo/Slogan
    • Call to Action - Empty State
    • Carousel
    • Cart
    • Choice
    • Collapsible Container
    • Copyright Footer
    • Coupon Redeemer
    • Content
    • Date Relative Display
    • Definition Lists
    • Delimited List
    • Details
    • Expiration Date Display
    • Feature Toggle
    • Form Section Heading
    • Header
    • Heading
    • Heading With Annotation
    • Icons
    • Interaction Details
    • Labeled Balance
    • Link
    • Main Container
    • Metadata Card
    • Metadata List Item
    • Offering QuickView
    • Payment Instrument
    • Preference Dialog
    • Pricing Plan Decoration
    • Product Availability
    • Product Details
    • Product Image
    • Quick Info Panel
    • Remark
    • Renewal Column
    • Richlist Filterbar
    • Richlist Wrapper
    • Scrollable Horizontal List
    • Search Card
    • Search Panel
    • Section
    • Selectable Option
    • Smart Truncate
    • Status Grid
    • Tooltip
  • Data Visualizations
    • Bill Runs
    • Comparison Table
    • Datatable
    • Progress Tracker
    • Schedules
    • Query Builder
  • Dialogs
    • Confirmation Dialog
    • Dialog
    • Rich List Dialog
    • Wait Dialog
  • Forms and Filters
    • Additional Properties
    • Autocomplete
    • 3 Field Date Input
    • Checkbox
    • Credit Card
    • Bulk Action Bar
    • Buttons
    • Confirmation Button
    • Date Picker
    • E-Check
    • Entity Specification
    • External Bill
    • External Gift Card
    • Focus Group
    • Forms
    • Filter Bar
    • Filter Dropdowns
    • Gift Card
    • Grouped Check Filters
    • Inputs
    • Input Select Combo
    • Monetary Input
    • Multi Dropdown Selector
    • Multiple Numeric Input
    • Monetary Range Input
    • Password Unmask Button
    • Select
    • Select Button Or Stepper
    • Select Or Text Input
    • Stepper
    • Tag Dropdown
  • Navigation & Flow
    • Back Banner
    • Back Component
    • Breadcrumbs
    • Details Pager
    • Expandable Section
    • Infinite Scroll
    • Open New Window
    • Pager
    • Fancy Richlist
    • Standard Navigator
    • Status Indicator
    • Step Progress Bar
    • Step Progress Indicator
    • Tab Card
    • Tab Panel
    • Tier Navigator
    • Wizard
  • Notifications
    • Loading Indicator
    • Toast Notifications
  • Deprecated
    • Content Area

Showcase

  • General
    • Simplelist
    • Richlist
    • Primary (side) Navigator
  • Customer Care
    • Case Activity List
    • Customer Care Navigator Component
    • Dashboard
    • Decisions
  • Reporting
    • Content Visualization

Unit Testing

  • Actions
  • Components
  • Selectors
  • Reducers

End-to-end Testing

Statistics

Expandable Section

In this section

Variants
  • Basic Usage
  • Section with Labels & Icons
  • Long Heading Behavior
  • Non-Expanding
  • In List

Basic Usage

The expandable section is a CSS-only component which provides a common mechanism to group content in a panel that can be expanded/collapsed using the caret on the left of the title.

TV, Mobile and Wireline Triple Play No DG
This is some content!
HTML
<div class="t-content" ng-controller="basicExpandableSectionExampleController">
    <div class="c-expandableSection" ng-class="{ 'is-expanded': isExpanded}">
        <div class="c-expandableSection-header">
            <div class="c-expandableSection-expander" ng-click="handleExpansion()">
                <inv-icon glyph="'plus-square'" ng-show="!isExpanded"></inv-icon>
                <inv-icon glyph="'minus-square'" ng-show="isExpanded"></inv-icon>
            </div>
            <inv-icon class="c-expandableSection-logo" glyph="'question_mark'"></inv-icon>
            <div class="c-expandableSection-heading">TV, Mobile and Wireline Triple Play No DG</div>
        </div>
        <div class="c-expandableSection-content" ng-if="isExpanded">
            This is some content!
        </div>
    </div>
</div>

Section with Labels & Icons

The expandable section supports the inclusion of various supplemental information, usually in the form of labels or icons. These will be vertically aligned within the heading of the section

TV, Mobile and Wireline Triple Play No DG
Total: $139.00
This is some content!
HTML
<div class="t-content" ng-controller="basicExpandableSectionExampleController">
    <div class="c-expandableSection" ng-class="{ 'is-expanded': isExpanded}">
        <div class="c-expandableSection-header">
            <div class="c-expandableSection-expander" ng-click="handleExpansion()">
                <inv-icon glyph="'plus-square'" ng-show="!isExpanded"></inv-icon>
                <inv-icon glyph="'minus-square'" ng-show="isExpanded"></inv-icon>
            </div>
            <inv-icon class="c-expandableSection-logo" glyph="'question_mark'"></inv-icon>
            <div class="c-expandableSection-heading">TV, Mobile and Wireline Triple Play No DG</div>
            <div class="c-expandableSection-controls">
                <div class="c-expandableSection-label">Total: $139.00</div>
                <div class="c-expandableSection-icon">
                    <inv-icon glyph="'exclamation-circle'"></inv-icon>
                </div>
                <div class="c-expandableSection-button u-ml++">
                    <inv-icon glyph="'ellipsis-h'"></inv-icon>
                </div>
            </div>
        </div>
        <div class="c-expandableSection-content" ng-if="isExpanded">
            This is some content!
        </div>
    </div>
</div>

Long Heading Behavior

The heading section of the expandable section will consume the space it has available, but will truncate its contents when it begins to encroach upon the controls section if it is too large.

TV, Mobile and Wireline Triple Play No DG (November - June Special)
Total: $139.00
This is some content!
HTML
<div class="t-content" ng-controller="basicExpandableSectionExampleController">
    <div class="c-expandableSection g-expandableSection--small" ng-class="{ 'is-expanded': isExpanded}">
        <div class="c-expandableSection-header">
            <div class="c-expandableSection-expander" ng-click="handleExpansion()">
                <inv-icon glyph="'plus-square'" ng-show="!isExpanded"></inv-icon>
                <inv-icon glyph="'minus-square'" ng-show="isExpanded"></inv-icon>
            </div>
            <inv-icon class="c-expandableSection-logo" glyph="'question_mark'"></inv-icon>
            <div class="c-expandableSection-heading">TV, Mobile and Wireline Triple Play No DG (November - June Special)</div>
            <div class="c-expandableSection-controls">
                <div class="c-expandableSection-label">Total: $139.00</div>
                <div class="c-expandableSection-icon">
                    <inv-icon glyph="'exclamation-circle'"></inv-icon>
                </div>
                <div class="c-expandableSection-button u-ml++">
                    <inv-icon glyph="'ellipsis-h'"></inv-icon>
                </div>
            </div>
        </div>
        <div class="c-expandableSection-content" ng-if="isExpanded">
            This is some content!
        </div>
    </div>
</div>

Non-Expanding

The styles for the expandable section can also be utilized in a non-expanding panel.

Account Balance
This is some content!
HTML
<div class="t-content" ng-controller="basicExpandableSectionExampleController">
    <div class="c-expandableSection is-expanded">
        <div class="c-expandableSection-header">
            <inv-icon class="c-expandableSection-logo" glyph="'question_mark'"></inv-icon>
            <div class="c-expandableSection-heading">Account Balance</div>
            <div class="c-expandableSection-controls">
                <div class="c-expandableSection-button u-ml++">
                    <inv-icon glyph="'ellipsis-h'"></inv-icon>
                </div>
            </div>
        </div>
        <div class="c-expandableSection-content">
            This is some content!
        </div>
    </div>
</div>

In List

Demonstrates how the component can look when used as a list item

This is some content!
HTML
<div class="t-content" ng-controller="listExpandableSectionExampleController as controller">
    <!--The class c-expandableSection-list denotes an expandable item as a list-->
    <div class="c-expandableSection c-expandableSection-list"
         ng-class="{ 'is-expanded': expandableItem.isExpanded}"
         ng-repeat="expandableItem in controller.expandableItems track by $index">
        <div class="c-expandableSection-header">
            <div class="c-expandableSection-heading u-flexItemSized+">
                <div class="u-flex u-flexRow u-flexMiddle">
                    <div class="c-expandableSection-expander" ng-click="controller.handleExpansion(expandableItem)">
                        <inv-icon glyph="'caret-right'" ng-show="!expandableItem.isExpanded"></inv-icon>
                        <inv-icon glyph="'caret-down'" ng-show="expandableItem.isExpanded"></inv-icon>
                    </div>
                    <inv-step-progress-indicator class="u-mr+" status="expandableItem.status" light-theme="true"></inv-step-progress-indicator>
                    <div class="u-flexItemGrow u-textTruncate" ng-bind="expandableItem.title"></div>
                </div>
            </div>
            <div class="c-expandableSection-heading is-field u-flexItemSized" ng-bind="expandableItem.createDate"></div>
            <div class="c-expandableSection-heading is-field u-flexItemSized" ng-bind="expandableItem.completeDate"></div>
            <div class="c-expandableSection-controls">
                <div class="c-expandableSection-button u-ml++">
                    <inv-icon glyph="'ellipsis-h'"></inv-icon>
                </div>
            </div>
        </div>
        <div class="c-expandableSection-content" ng-if="expandableItem.isExpanded">
            This is some content!
        </div>
    </div>
</div>