Skip to content

Commit 7cb0982

Browse files
committed
Fix CSS to repair overflow of sidebar items
1 parent 27401f4 commit 7cb0982

File tree

4 files changed

+34
-12
lines changed

4 files changed

+34
-12
lines changed

scaladoc-js/src/Main.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ package dotty.tools.scaladoc
33
object Main extends App {
44
Searchbar()
55
SocialLinks()
6+
Ux()
67
}

scaladoc-js/src/ux/Ux.scala

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package dotty.tools.scaladoc
2+
3+
import org.scalajs.dom._
4+
import org.scalajs.dom.ext._
5+
6+
import scala.util.matching.Regex._
7+
import scala.util.matching._
8+
9+
class Ux():
10+
def sideMenuItemsWordBreaking(): Unit =
11+
val matchingRegex = raw"([.A-Z])".r
12+
def modifyingFunc = (e: Node) => e.nodeValue = matchingRegex.replaceAllIn(e.nodeValue, m => s"\u200B${m.group(0)}")
13+
val nodes = document.querySelectorAll("#sideMenu2 a span").collect {
14+
case e: html.Element => e
15+
}
16+
.flatMap { e => e.childNodes }
17+
.filter(_.nodeType == 3)
18+
nodes.foreach(modifyingFunc)
19+
20+
sideMenuItemsWordBreaking()

scaladoc/resources/dotty_res/styles/scalastyle.css

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ th {
157157
#sideMenu2 {
158158
overflow: auto;
159159
overflow-x: hidden;
160-
overflow-y: scroll;
161160
scrollbar-width: thin;
162161
height: 100%;
163162
font-size: var(--leftbar-font-size);
@@ -199,19 +198,21 @@ th {
199198
display: flex;
200199
align-items: center;
201200
flex: 1;
202-
overflow-x: hidden;
203201
overflow-wrap: anywhere;
204202
color: var(--leftbar-fg);
205203
margin-right: .5rem;
206-
padding-top: 3px;
207-
padding-bottom: 3px;
208-
margin-top: 1px;
209-
margin-bottom: 1px;
210-
width: 100%;
211-
/* This trick adds selected background stretching to the left side of screen */
212-
margin-left: calc(0px - var(--side-width));
213-
padding-left: var(--side-width);
214-
width: calc(2 * var(--side-width));
204+
padding-top: 2%;
205+
padding-bottom: 2%;
206+
width: calc(var(--side-width));
207+
padding-left: calc(0.05 * var(--side-width));
208+
padding-right: calc(0.3 * var(--side-width));
209+
box-sizing: border-box;
210+
}
211+
212+
#sideMenu2 a span:not(.micon) {
213+
padding-left: 1.5em;
214+
text-indent: -1.5em;
215+
width: calc(0.55 * var(--side-width));
215216
}
216217

217218
#sideMenu2 a.selected {

scaladoc/src/dotty/tools/scaladoc/renderers/HtmlRenderer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
158158
case m: Member => navigationIcon(m)
159159
case _ => Nil
160160
}
161-
Seq(a(href := pathToPage(pageLink.dri, nav.link.dri), attrs)(icon, nav.link.name))
161+
Seq(a(href := pathToPage(pageLink.dri, nav.link.dri), attrs)(icon, span(nav.link.name)))
162162

163163
nav.children match
164164
case Nil => isSelected -> div(linkHtml())

0 commit comments

Comments
 (0)