Sorting¶
Use .sorting element to style elements related to the sorting module.
Structurally .sorting contains following elements:
.sorting-list.sorting-list__option.sorting-list__link.sorting__sheet-opener.sorting__sheet.sorting__sheet__close.sorting__sheet-header.sorting__sheet-body
It also contains following class modifiers:
.sorting-list__link_active
Example¶
Here is an example of sorting element usage.
HTML
<sorting-control
class="sorting"
id="sorting-123456"
>
<!-- Sort select for larger breakpoints -->
<div class="sort-select hidden-xs-only">
<!-- sort_select macro output -->
</div>
<!-- Sheet opener button for responsive design -->
<h-sheet-opener
class="btn btn_outline btn_xs sorting__sheet-opener"
>
Sorting
</h-sheet-opener>
<!-- Sorting sidebar sheet -->
<h-sheet id="sorting-sheet-123456" class="sorting__sheet" hidden>
<h-sheet-header class="sorting__sheet-header">
<h2 class="font_semibold">Sorting</h2>
<h-sheet-close class="sorting__sheet__close btn btn_icon">
<span class="sr-only">Close sorting</span>
</h-sheet-close>
</h-sheet-header>
<h-sheet-body class="sorting__sheet-body">
<ul class="sorting-list" aria-label="Sorting options">
<li class="sorting-list__option">
<a class="sorting-list__link sorting-list__link_active" href="/products?sort=1">
Price: lowest first
</a>
</li>
<li class="sorting-list__option">
<a class="sorting-list__option__link" href="/products?sort=2">
Price: highest first
</a>
</li>
</ul>
</h-sheet-body>
</h-sheet>
</sorting-control>
LESS¶
You can modify any sorting less variable in your User Less section to change sorting styles.
Sorting variables¶
Variables used to style sorting.
@sortingSheetOpenerIconMarginRight: 0.625rem;
@sortingSheetOpenerColor: inherit;
@sortingListLinkPaddingVertical: @globalSpacing * 0.5;
@sortingListLinkPaddingHorizontal: @globalSpacing;
@sortingListOptionFontSize: 14;
@sortingOptionColor: @globalFontColor;
@sortingOptionColorHover: @primaryColor;
@sortingOptionColorActive: @primaryColor;
@sortingOptionBgColorHover: @neutralColors50;
@sortingOptionIconMarginHorizontal: 0.5625rem;
@sortingSheetHeaderBorderColor: @neutralColors100;
@sortingSheetBodyPaddingVertical: @globalSpacing;
@sortingSheetBodyPaddingHorizontal: 0;
If you want to change sorting styles, you can just change the variables. To change a default font-size of sorting options just modify @sortingListOptionFontSize variable.
Sorting standard styles¶
Here are standard sorting styles.
.sorting {
&-list {
display: flex;
flex-direction: column;
&__option {
display: flex;
justify-content: space-between;
flex-wrap: nowrap;
width: 100%;
&:has(a:hover, a:focus-visible) {
background-color: @sortingOptionBgColorHover;
}
}
&__link {
display: flex;
justify-content: space-between;
width: 100%;
text-decoration: none;
color: @sortingOptionColor;
padding: @sortingListLinkPaddingVertical @sortingListLinkPaddingHorizontal;
.font-size(@sortingListOptionFontSize);
line-height: 1.4;
&_active {
color: @sortingOptionColorActive;
.weight-semibold();
.icon {
margin-inline: @sortingOptionIconMarginHorizontal;
stroke: @sortingOptionColorActive;
}
}
}
}
&__sheet-opener {
&:focus-visible {
outline: 2px solid @sortingOptionColorActive;
outline-offset: 2px;
}
.icon {
stroke: @sortingSheetOpenerColor;
margin-right: @sortingSheetOpenerIconMarginRight;
}
.labeled-icon__signature {
color: @sortingSheetOpenerColor;
}
}
&__sheet {
.sheet__header {
padding: 1rem;
border-bottom: 1px solid @sortingSheetHeaderBorderColor;
}
&__close {
background-color: transparent;
}
.sheet__body {
padding: @sortingSheetBodyPaddingVertical @sortingSheetBodyPaddingHorizontal;
}
}
}