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

Icons

In this section

Overview Variants
  • Icons
  • Icon States
  • Layered Icons
  • Future Update Icon

Icons

The inv-icon Angular component incorporates a "best practices" approach for SVG symbol use (particularly, using "(SVG) references" to avoid duplicate SVG markup in the DOM). This sometimes interferes with certain browser/heuristic/markup combinations (like, inv-icon inside anchor (<a>) elements on Chrome/Edge). This can be mitigated by electing to use an icon with an "inlined glyph" (via the inline-glyph= boolean-like (truthy/falsey) literal binding). This avoids the use of references and duplicates the SVG markup in the DOM, mitigating the issue.

Icons

These are the currently available icons in the invision UI system..

HTML
<div ng-controller="IconExampleController as $ctrl">
    <div class="g-iconExample-controlBar">
        <inv-button-bar class="g-iconExample-colorThemeControl"
                        items="$ctrl.viewModel.colorTheme.selections"
                        descriptor="$ctrl.viewModel.colorTheme.descriptor"
                        selected-item="$ctrl.viewModel.colorTheme.current"
                        on-selection-changed="$ctrl.colorThemeSelection_changed">
        </inv-button-bar>

        <inv-button-bar class="g-iconExample-sizePicker"
                        items="$ctrl.viewModel.sizes.semanticSizes"
                        descriptor="$ctrl.viewModel.sizes.descriptor"
                        selected-item="$ctrl.viewModel.sizes.currentSelection"
                        on-selection-changed="$ctrl.sizeSelection_changed">
        </inv-button-bar>
        <input class="g-iconExample-sizeInput"
               type="number"
               ng-model="$ctrl.viewModel.sizes.currentSize"
               ng-change="$ctrl.sizeInput_changed" />
    </div>
    <div class="g-iconExample--containment"
         ng-style="{ 'font-size': $ctrl.viewModel.sizes.currentSize }"
         ng-class="{ 'g-iconExample--dark' : $ctrl.viewModel.colorTheme.current.isDark }">
        <div ng-repeat="icon in $ctrl.viewModel.icons track by icon"
             class="g-iconExample">
            <inv-icon glyph="icon"></inv-icon>
            <div class="g-iconExample-name"
                 ng-bind="::icon"></div>
        </div>
    </div>
</div>

Icon States

Icons are colored to represent their state

Stateful icon classes

is-error
is-warning
is-info
is-success
is-subtle
is-running

Handling the glyph not found state:

No icon will be rendered, and there should be a logged warning about the mis-use of the glyph binding:
HTML
<div class="t-content">
    <h3>Stateful icon classes</h3>
    <div class="g-iconExample--containment">
        <div class="g-iconExample">
            <inv-icon class="c-icon is-error" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-error</div>
        </div>
        <div class="g-iconExample">
            <inv-icon class="c-icon is-warning" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-warning</div>
        </div>
        <div class="g-iconExample">
            <inv-icon class="c-icon is-info" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-info</div>
        </div>
        <div class="g-iconExample">
            <inv-icon class="c-icon is-success" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-success</div>
        </div>
        <div class="g-iconExample">
            <inv-icon class="c-icon is-subtle" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-subtle</div>
        </div>
        <div class="g-iconExample">
            <inv-icon class="c-icon is-running" glyph="'exclamation-circle'"></inv-icon>
            <div class="g-iconExample-name">is-running</div>
        </div>
    </div>
    <br>
    <h3>Handling the glyph not found state:</h3>
    <div class="g-iconExample--containment">
        <inv-icon class="c-icon" glyph="'derp'"></inv-icon>
        <span>No icon will be rendered, and there should be a logged warning about the mis-use of the glyph binding:</span>
    </div>
</div>

Layered Icons

Some icons are comprised of multiple, layered, elements, each individually stylable.

layered-plus-cc (brand path ("circle"), white polygon ("plus"))
layered-plus-cc (brand polygon ("plus"))
HTML
<div class="g-iconExample--containment">
    <div class="g-iconExample g-iconExample--layered">
        <inv-icon class="g-iconExample-icon--brandPath g-iconExample-icon--whitePolygon" inline-glyph="true" glyph="'layered-plus-cc'"></inv-icon>
        <div class="g-iconExample-name">layered-plus-cc (brand path ("circle"), white polygon ("plus"))</div>
    </div>
    <div class="g-iconExample g-iconExample--layered">
        <inv-icon class="g-iconExample-icon--brandPolygon" inline-glyph="true" glyph="'layered-plus-cc'"></inv-icon>
        <div class="g-iconExample-name">layered-plus-cc (brand polygon ("plus"))</div>
    </div>
</div>

Future Update Icon

Icon to be used to indicate when an entity has future updates. Includes title hover text.

HTML
<div class="t-content">
    <inv-future-update-icon></inv-future-update-icon>
</div>