Link in summary
by Kai Kubasta
HTML
<details>
<summary>
<a class="link" href="#">Sub page</a>
<div class="button"></div>
</summary>
<ul>
<li><a href="#">Link 1</a>
<li><a href="#">Link 2</a>
<li><a href="#">Link 3</a>
</details>
CSS
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
padding: 2rem;
}
a:any-link {
color: #00f;
}
a:any-link:is(:hover, :focus-visible) {
color: #000;
}
summary {
display: grid;
grid-template-columns: auto 2rem;
column-gap: 4px;
}
:is(.link, .button) {
border-radius: 0.5rem;
}
.link {
background-color: #eee;
color: #00f;
text-decoration: none;
padding: 0.5rem;
}
.link:is(:hover, :focus-visible) {
color: #000;
}
.button {
font-size: 1rem;
aspect-ratio: 1;
display: grid;
place-items: center;
align-self: stretch;
}
.button:hover {
background-color: #eee;
cursor: pointer;
}
details:not(:open) .button::before {
content: '↓';
}
details:open .button::before {
content: '↑';
}