Skip to content
This repository has been archived by the owner on Aug 1, 2020. It is now read-only.

Enable keyboard interaction for nav toggles #106

Merged
merged 2 commits into from
Apr 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions assets/js/components/tree.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,14 @@ class TreeCollection {

open(silent){
this._el.removeClass('is-closed');
this._toggle.attr('aria-expanded', 'true');
this._isOpen = true;
if (!silent) this._tree.saveState();
}

close(silent){
this._el.addClass('is-closed');
this._toggle.attr('aria-expanded', 'false');
this._isOpen = false;
if (!silent) this._tree.saveState();
}
Expand Down
47 changes: 26 additions & 21 deletions assets/scss/components/_tree.scss
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,21 @@
display: none;
}

.Tree-collectionLabel {
span::before {
[dir="ltr"] & {
background-image: url("../img/icon-navigation-closed-ltr.svg");
}
[dir="rtl"] & {
background-image: url("../img/icon-navigation-closed-rtl.svg");
}
.Tree-collectionLabel::before {
[dir="ltr"] & {
background-image: url("../img/icon-navigation-closed-ltr.svg");
}
[dir="rtl"] & {
background-image: url("../img/icon-navigation-closed-rtl.svg");
}
}
}
}

.Tree-collectionLabel {
display: block;
position: relative;
width: 100%;
@include font(caption);
padding-top: 0.375rem;
padding-bottom: 0.375rem;
Expand All @@ -39,22 +40,21 @@
user-select: none;
color: $color-text;

&:hover {
background-color: $color-ui-hover;
[dir="ltr"] & {
text-align: left;
}
[dir="rtl"] & {
text-align: right;
}

span {
@include padding-inline(start, 0.75rem);
@include margin-inline(start, -1.75rem);
display: block;
position: relative;
&:hover {
background-color: $color-ui-hover;
}

span::before {
@include offset-inline(start);
&::before {
display: inline-block;
position: absolute;
top: 0.25rem;
top: 0.75rem;
width: 0.75rem;
height: 0.75rem;
background-image: url("../img/icon-navigation-opened.svg");
Expand Down Expand Up @@ -92,11 +92,16 @@

@for $i from 1 through 8 {
.Tree-depth-#{$i} {
$padLeft: ($i * 1rem);
.Tree-collectionLabel {
@include padding-inline(start, (($i - 1) * 1rem));

&::before {
@include offset-inline(start, (($i - 2) + 0.25rem));
}
}

.Tree-collectionLabel,
.Tree-entityLink {
@include padding-inline(start, $padLeft);
@include padding-inline(start, ($i * 1rem));
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions views/macros/navigation.nunj
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
{% for item in items %}
{% if item.isCollection or (item.isComponent and not item.isCollated and item.variants().filter('isHidden', false).size > 1) %}
<li class="Tree-item Tree-collection Tree-depth-{{ depth }}" data-behaviour="collection" id="tree-{{ root.name }}-collection-{{ item.handle }}">
<h4 class="Tree-collectionLabel" data-role="toggle">
<span>{{ item.label }}</span>
</h4>
<ul class="Tree-collectionItems" data-role="items">
<button class="Tree-collectionLabel" data-role="toggle" aria-expanded="true" aria-controls="tree-{{ root.name }}-collection-{{ item.handle }}-items">
{{ item.label }}
</button>
<ul class="Tree-collectionItems" data-role="items" id="tree-{{ root.name }}-collection-{{ item.handle }}-items">
{% if item.isComponent and not item.isCollated %}
{% set items = item.variants().filter('isHidden', false).items() %}
{% else %}
Expand Down