A lot of complaints I've looked over in the Site Feedback have been due to the way that story map chapters just run off the screen towards the right.
Playing around with a bit of CSS and JS, I found two small fixes that seem to alleviate this issue entirely.
Essentially, the 'story-map-chapter' CSS Class has two attributes that cause the off screen run off:
1. margin-left being defined as multiples of 30px, and
2. min-width being defined as 1000px.
Changing these values we can get much better user experience.
Since the story map (and most of the site) is rendered client side but that code is unfortunately minified, I had to resort to JS to change the values as needed.
This essentially indents 1px per chapter and changes the min-width down to 500 pixels. Unfortunately, since the collapse and un-collapse features utilize the min-width attribute to determine what to collapse, we can't offload the math onto the browser's CSS engine, but instead have to use JS to calculate the value to convert it to a string to make it work.
Additionally, since this is JS based, you need to store that it's been modified already somewhere, hence the guard at the top.
Overall, I've tested this against The Gamer, Chyoa Edition and Sexual Privilege. The Gamer has one of the deepest branches (Funatic's is currently over 800 chapters) and Sexual Privilege is fairly wide but relatively shallow. It works.
Here is an example before:
and after:

Playing around with a bit of CSS and JS, I found two small fixes that seem to alleviate this issue entirely.
Essentially, the 'story-map-chapter' CSS Class has two attributes that cause the off screen run off:
1. margin-left being defined as multiples of 30px, and
2. min-width being defined as 1000px.
Changing these values we can get much better user experience.
Since the story map (and most of the site) is rendered client side but that code is unfortunately minified, I had to resort to JS to change the values as needed.
Code:
Array.from(document.querySelectorAll('.story-map-chapter')).map(x=>{
if (x.dataset.adjusted_indent) {
return
}
margin = x.style['margin-left'];
indent = parseInt(margin.replace('px','')) / 30
margin = `${Math.min(indent, document.body.clientWidth - 300 - Math.min(indent, 200 ))}px`;
x.style['margin-left'] = margin;
x.style['min-width'] = '500px';
x.dataset.adjusted_indent = true;
})
This essentially indents 1px per chapter and changes the min-width down to 500 pixels. Unfortunately, since the collapse and un-collapse features utilize the min-width attribute to determine what to collapse, we can't offload the math onto the browser's CSS engine, but instead have to use JS to calculate the value to convert it to a string to make it work.
Additionally, since this is JS based, you need to store that it's been modified already somewhere, hence the guard at the top.
Overall, I've tested this against The Gamer, Chyoa Edition and Sexual Privilege. The Gamer has one of the deepest branches (Funatic's is currently over 800 chapters) and Sexual Privilege is fairly wide but relatively shallow. It works.
Here is an example before:
and after:
