@import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap'); :root { --text-color: #cccccc; --text-color-highlight: #ffffff; } html { font-family: 'Open Sans', sans-serif; color: var(--text-color); } body { display: flex; justify-content: start; align-items: start; color: var(--text-color); } nav { padding-block: 0.5rem; background-color: #232323; height: 100vh; display: flex; position: sticky; flex-direction: column; justify-content: center; } nav a { writing-mode: tb-rl; transform: rotate(-180deg); color: #cccccc; transition: color 0.2s; padding-block: 0.2rem; padding-inline: 0.5rem; } nav a.active { background-color: rgba(255,255,255, 0.1); color: var(--text-color-highlight); } nav a.active::after { opacity: 1; background-color: var(--text-color-highlight); } nav a::after { content: ''; position: absolute; top: 0; left: 0.1rem; width: 1px; height: 100%; background-color: var(--text-color); opacity: 0; transition: opacity 0.2s; } nav a:hover { color: white; } nav a:hover::after { height: 100%; color: #cccccc; opacity: 1; }