summary::-webkit-details-marker
- это стрелка, которую вы хотите, к сожалению, она находится в теневом DOM 1008 * и доступ к ней не является кросс-браузерным (Только хром).
Следующая демонстрация:
Скрывает оригинальную стрелку
Заменена стрелка на: <b>▶</b>
Анимированная с помощью CSS
Базовый JavaScript применяется к стрелке
Демо
document.querySelector('summary b').onclick = function(e) {
console.log('clicked');
};
summary::-webkit-details-marker {
display: none
}
summary {
height: 1rem;
font-size: 1rem;
}
summary:focus {
outline: none
}
summary b {
display: inline-block;
font-size: 0.75rem;
margin: 0;
padding: 5px;
cursor: pointer;
line-height: 1rem;
height: 1rem;
vertical-align: middle;
transform: rotate(0deg);
transition: transform 0.3s;
}
[open] b {
transform: rotate(90deg);
transition: transform 0.3s;
transform-origin: 50% 45%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<details>
<summary><b>▶</b>Header</summary>
<p>Content</p>
<p>Content</p>
</details>