Accordion List Component

A CSS implementation of the spr accordion list component.

Example

html
<div class="spr-accordion-list">
    <div class="spr-accordion">
        <div class="spr-accordion-panel spr-accordion-panel-closed">
            <div class="spr-accordion-panel-header">
                <div class="spr-accordion-list-item spr-accordion-list-item-expandable spr-accordion-list-item-closed">
                    <div class="spr-accordion-list-item-content-text">
                        Insights
                    </div>
                    <div class="spr-accordion-list-item-indicator">
                        <i class="spr-icon ng-star-inserted spr-icon-carat-down"></i>
                    </div>
                </div>
            </div>
        </div>
        <div class="spr-accordion-panel spr-accordion-panel-opened">
            <div class="spr-accordion-panel-header">
                <div class="spr-accordion-list-item spr-accordion-list-item-expandable spr-accordion-list-item-closed">
                    <div class="spr-accordion-list-item-content-text">
                        Funding
                    </div>
                    <div class="spr-accordion-list-item-indicator">
                        <i class="spr-icon ng-star-inserted spr-icon-carat-up"></i>
                    </div>
                </div>
            </div>
            <div class="spr-accordion-panel-content">
                <div class="spr-accordion-list-item spr-accordion-list-sub-item">Overview</div>
                <div class="spr-accordion-list-item spr-accordion-list-sub-item">Withdraw</div>
                <div class="spr-accordion-list-item spr-accordion-list-sub-item">Make a payment</div>
                <div class="spr-accordion-list-item spr-accordion-list-sub-item">Activity</div>
            </div>
        </div>
        <div class="spr-accordion-panel spr-accordion-panel-closed">
            <div class="spr-accordion-panel-header">
                <div class="spr-accordion-list-item spr-accordion-list-item-closed">
                    <div class="spr-accordion-list-item-content-text">
                        Expenses
                    </div>
                </div>
            </div>
        </div>
        <div class="spr-accordion-panel spr-accordion-panel-closed">
            <div class="spr-accordion-panel-header">
                <div class="spr-accordion-list-item spr-accordion-list-item-expandable spr-accordion-list-item-closed">
                    <div class="spr-accordion-list-item-content-text">
                        Deposits
                    </div>
                    <div class="spr-accordion-list-item-indicator">
                        <i class="spr-icon ng-star-inserted spr-icon-carat-down"></i>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Compiled CSS

Example

scss
@import 'components/accordion-list';
css compiled
.spr-accordion-list .spr-accordion-list-item {
  display: flex;
  justify-content: space-between;
  cursor: pointer;
  padding: spr-space(xs);
  min-width: spr-size(10);
}

.spr-accordion-list .spr-accordion-list-item .spr-accordion-list-item-content-text {
  pointer-events: none;
}

.spr-accordion-list .spr-accordion-list-item.spr-accordion-list-item-expandable {
  display: flex;
  font-weight: spr-font-weight(bold);
}

.spr-accordion-list .spr-accordion-list-item.spr-accordion-list-item-expandable .spr-accordion-list-item-content-text {
  flex: 1;
  pointer-events: none;
}

.spr-accordion-list .spr-accordion-list-item.spr-accordion-list-item-expandable .spr-accordion-list-item-indicator {
  min-width: spr-space(lg);
}

.spr-accordion-list .spr-accordion-list-item.spr-accordion-list-item-active {
  background-color: spr-color(neutral, 10);
}

.spr-accordion-list .spr-accordion-list-item.spr-accordion-list-sub-item {
  padding-left: spr-space(md);
}