Skip to content

Commit bfbe7e3

Browse files
committed
Revert style of top-level entries. Fix styling issues in side menu
1 parent 8cbb747 commit bfbe7e3

File tree

6 files changed

+35
-21
lines changed

6 files changed

+35
-21
lines changed

scaladoc/resources/dotty_res/styles/theme/components/navigation-item.css

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
.nh {
1616
border-radius: 4px;
17-
min-height: calc(4.5 * var(--base-spacing));
1817
position: relative;
1918
display: flex;
2019
flex-direction: row;
@@ -213,24 +212,30 @@ span.ar::before {
213212
}
214213

215214
#api-nav .nh a {
216-
position: absolute;
215+
position: relative;
217216
}
218217

219218
/* docs */
219+
220+
/* Hardcode visibility of children of top-level entry */
221+
#docs-nav .ni.n0 > .ni {
222+
display: block;
223+
}
224+
220225
#docs-nav .n0 > .nh {
221226
padding-left: calc(1.5 * var(--base-spacing));
222227
}
223228

224229
#docs-nav .n1 > .nh {
225-
padding-left: calc(6.5 * var(--base-spacing));
230+
padding-left: calc(1.5 * var(--base-spacing));
226231
}
227232

228233
#docs-nav .n2 > .nh {
229-
padding-left: calc(11.5 * var(--base-spacing));
234+
padding-left: calc(6.5 * var(--base-spacing));
230235
}
231236

232237
#docs-nav .n3 > .nh {
233-
padding-left: calc(16.5 * var(--base-spacing));
238+
padding-left: calc(11.5 * var(--base-spacing));
234239
}
235240

236241
#docs-nav span.ar {

scaladoc/resources/dotty_res/styles/theme/components/switcher.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
color: var(--action-primary-content-default);
2121
cursor: pointer;
2222
border: none;
23+
24+
text-decoration: none;
2325
}
2426

2527
.switcher:first-child {
@@ -35,6 +37,8 @@
3537
.switcher:hover {
3638
background: var(--action-primary-background-hover);
3739
color: var(--action-primary-content-hover);
40+
41+
text-decoration: none;
3842
}
3943

4044
.switcher:active {

scaladoc/resources/dotty_res/styles/theme/layout/container.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ body {
55
}
66

77
#container {
8+
--header-height: calc(8 * var(--base-spacing));
89
}

scaladoc/resources/dotty_res/styles/theme/layout/header.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#header {
2+
--header-height: calc(8 * var(--base-spacing));
23
box-sizing: border-box;
34
display: flex;
45
flex-direction: row;
56
justify-content: space-between;
67
align-items: center;
78
padding: calc(1.75 * var(--base-spacing)) calc(3 * var(--base-spacing));
89
position: absolute;
9-
height: calc(8 * var(--base-spacing));
10+
height: var(--header-height);
1011
left: 0px;
1112
right: 0px;
1213
top: 0px;

scaladoc/resources/dotty_res/styles/theme/layout/leftMenu.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
padding: calc(3 * var(--base-spacing)) 0px;
66
position: absolute;
77
width: calc(35 * var(--base-spacing));
8-
height: 100%;
8+
height: calc(100% - var(--header-height));
99
left: 0px;
1010
top: calc(8 * var(--base-spacing));
1111
background: var(--background-default);

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

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -106,35 +106,40 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
106106
}
107107

108108
def renderNested(nav: Page, nestLevel: Int): (Boolean, AppliedTag) =
109+
val isApi = nav.content.isInstanceOf[Member]
109110
val isSelected = nav.link.dri == pageLink.dri
110111
val isTopElement = nestLevel == 0
111112

113+
val isTopLevelDocs = !isApi && isTopElement
114+
112115
def linkHtml(expanded: Boolean = false, withArrow: Boolean = false) =
113116
val attrs: Seq[String] = Seq(
114-
Option.when(isSelected)("selected h100"),
115-
Option.when(expanded)("expanded cs"),
116-
Option.when(!nav.content.isInstanceOf[Member])("de")
117+
Option.when((isSelected || expanded) && !isTopLevelDocs)("h100"),
118+
Option.when(isSelected)("selected"),
119+
Option.when(expanded || isTopLevelDocs)("expanded cs"),
120+
Option.when(!isApi)("de"),
121+
Option.when(isTopLevelDocs)("h200")
117122
).flatten
118123
val icon = nav.content match {
119124
case m: Member => navigationIcon(m)
120125
case _ => Nil
121126
}
122127
Seq(
123-
span(cls := s"nh ${if isTopElement then "h200 " else " "}" + attrs.mkString(" "))(
124-
if withArrow && !isTopElement then Seq(span(cls := "ar")) else Nil,
128+
span(cls := s"nh " + attrs.mkString(" "))(
129+
if withArrow then Seq(span(cls := "ar")) else Nil,
125130
a(href := pathToPage(pageLink.dri, nav.link.dri))(icon, span(nav.link.name))
126131
)
127132
)
128133

129134
nav.children.filterNot(_.hidden) match
130-
case Nil => isSelected -> div(cls := s"ni n$nestLevel ${if isSelected || isTopElement then "expanded" else ""}")(linkHtml())
135+
case Nil => isSelected -> div(cls := s"ni n$nestLevel ${if isSelected then "expanded" else ""}")(linkHtml())
131136
case children =>
132137
val nested = children.map(renderNested(_, nestLevel + 1))
133-
val expanded = nested.exists(_._1) || isSelected
138+
val expanded = nested.exists(_._1)
134139
val attr =
135-
if expanded || isSelected || isTopElement then Seq(cls := s"ni n$nestLevel expanded") else Seq(cls := s"ni n$nestLevel")
140+
if expanded || isSelected || isTopLevelDocs then Seq(cls := s"ni n$nestLevel expanded") else Seq(cls := s"ni n$nestLevel")
136141
(isSelected || expanded) -> div(attr)(
137-
linkHtml(expanded, true),
142+
linkHtml(expanded, !isTopLevelDocs),
138143
nested.map(_._2)
139144
)
140145

@@ -244,11 +249,9 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
244249
),
245250
apiNavOpt
246251
.filter(_._1)
247-
.fold(
248-
nav(id := "docs-nav", cls := s"side-menu")(docsNavOpt.get._2)
249-
)(
250-
apiNav => nav(id := "api-nav", cls := s"side-menu")(apiNav._2)
251-
)
252+
.map(apiNav => nav(id := "api-nav", cls := s"side-menu")(apiNav._2))
253+
.orElse(docsNavOpt.map(docsNav => nav(id := "docs-nav", cls := s"side-menu")(docsNav._2)))
254+
.get
252255
)
253256
),
254257
div(id := "main")(

0 commit comments

Comments
 (0)