Skip to content

Commit 034522e

Browse files
authored
Merge pull request #13566 from pikinier20/scaladoc/change-dark-theme
Scaladoc: UI/UX Changes
2 parents 2784596 + f9276c8 commit 034522e

File tree

19 files changed

+474
-270
lines changed

19 files changed

+474
-270
lines changed

scaladoc-js/resources/versions-dropdown.css

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
/* The container <div> - needed to position the dropdown content */
2+
23
.versions-dropdown {
4+
margin-left: 10px;
5+
margin-right: 10px;
36
position: relative;
47
}
58

69
/* Dropdown Button */
710
.dropdownbtn {
8-
background-color: var(--leftbar-bg);
9-
color: white;
1011
padding: 4px 12px;
1112
border: none;
13+
display: flex;
14+
flex-direction: row;
15+
align-items: center;
16+
border-radius: 3px;
17+
}
18+
19+
.dropdownbtnactive {
20+
background-color: var(--leftbar-dropdown-bg);
1221
}
1322

1423
/* Dropdown button on hover & focus */
@@ -17,43 +26,75 @@
1726
cursor: pointer;
1827
}
1928

29+
.dropdownbtn span.ar {
30+
display: none;
31+
}
32+
33+
.dropdownbtnactive span.ar {
34+
display: unset;
35+
position:absolute;
36+
right: 10px;
37+
z-index: 100;
38+
}
39+
40+
.dropdownbtnactive span.ar:before {
41+
content: '\e903';
42+
}
43+
44+
.dropdownbtnactive.expanded span.ar:before {
45+
content: '\e905';
46+
}
47+
2048
/* The search field */
2149
#dropdown-input {
2250
box-sizing: border-box;
23-
background-image: url('searchicon.png');
24-
background-position: 14px 12px;
25-
background-repeat: no-repeat;
26-
font-size: 16px;
27-
padding: 14px 20px 12px 45px;
28-
border: none;
29-
border-bottom: 1px solid #ddd;
51+
background-color: var(--leftbar-dropdown-bg);
52+
color: var(--leftbar-fg);
53+
width: 100%;
54+
font-size: var(--leftbar-font-size);
55+
border-radius: 3px;
56+
padding: 4px 12px;
3057
}
3158

59+
#dropdown-input::placeholder{
60+
color: var(--inactive-fg);
61+
}
3262

33-
/* The search field when it gets focus/clicked on */
34-
#dropdown-input:focus {outline: 3px solid #ddd;}
63+
#dropdown-input, #dropdown-input:focus {
64+
outline: none;
65+
border: none;
66+
border-bottom: 1px solid var(--border-medium);
67+
}
3568

3669

3770
/* Dropdown Content (Hidden by Default) */
3871
.dropdown-content {
3972
display: none;
4073
position: absolute;
41-
background-color: #f6f6f6;
74+
top: 0px;
75+
left: 0px;
76+
width: 100%;
77+
background-color: var(--leftbar-dropdown-bg);
78+
font-size: var(--leftbar-font-size);
4279
min-width: 230px;
43-
border: 1px solid #ddd;
80+
border-radius: 3px;
4481
z-index: 1;
4582
}
4683

4784
/* Links inside the dropdown */
4885
.dropdown-content a {
49-
color: black;
50-
padding: 12px 16px;
86+
color: var(--leftbar-fg);
5187
text-decoration: none;
88+
padding: 4px 12px;
5289
display: block;
90+
border-radius: 3px;
5391
}
5492

5593
/* Change color of dropdown links on hover */
56-
.dropdown-content a:hover {background-color: #f1f1f1}
94+
.dropdown-content a:hover {
95+
background-color: var(--leftbar-hover-bg);
96+
color: var(--leftbar-fg);
97+
}
5798

5899
/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */
59100
.show {

scaladoc-js/src/versions-dropdown/DropdownHandler.scala

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,11 @@ class DropdownHandler:
6060
addVersionsList(json)
6161

6262
document.addEventListener("click", (e: Event) => {
63-
if e.target.asInstanceOf[html.Element].id != "dropdown-button" then
64-
document.getElementById("dropdown-content").classList.remove("show")
65-
document.getElementById("dropdown-button").classList.remove("expanded")
63+
document.getElementById("dropdown-content").classList.remove("show")
64+
document.getElementById("dropdown-button").classList.remove("expanded")
6665
})
6766

68-
document.getElementById("version").asInstanceOf[html.Span].onclick = (e: Event) => {
69-
e.stopPropagation
70-
}
67+
document.getElementById("version").asInstanceOf[html.Span].addEventListener("click", (e: Event) => e.stopPropagation())
7168
end DropdownHandler
7269

7370
@JSExportTopLevel("dropdownHandler")
@@ -76,6 +73,7 @@ def dropdownHandler() =
7673
window.getSelection.toString.length == 0 then
7774
document.getElementById("dropdown-content").classList.toggle("show")
7875
document.getElementById("dropdown-button").classList.toggle("expanded")
76+
document.getElementById("dropdown-input").asInstanceOf[html.Input].focus()
7977

8078
@JSExportTopLevel("filterFunction")
8179
def filterFunction() =

scaladoc-testcases/src/example/level2/Documentation.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,21 @@ abstract class Documentation[T, A <: Int, B >: String, -X, +Y](c1: String, val c
134134
def useOfOutsideTypeInsideObject(): ReturnObjectWithType.returnType = ???
135135
def useOfSameLevelOutsideType(): SameLevelTypeLinking = ???
136136

137+
/** Lorem ipsum
138+
*
139+
*
140+
*
141+
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur scelerisque facilisis sapien a lobortis. Fusce ultricies erat ante, sit amet bibendum orci commodo in. Sed elementum tempus ipsum id sodales. Ut quis nisi vitae turpis lacinia mattis id nec orci. Nullam tincidunt accumsan nisl, ac maximus quam eleifend tincidunt. Nunc ipsum nulla, mattis vitae auctor blandit, euismod sit amet elit. Proin sed porttitor nisi. Curabitur tristique pretium nisi. Vestibulum sagittis condimentum blandit. In ac consequat odio, in fermentum turpis. In hac habitasse platea dictumst.
142+
* Proin scelerisque est sed magna fermentum, at ullamcorper purus porta. Aliquam posuere arcu elit, molestie fermentum justo malesuada non. In eget massa risus. Proin rutrum maximus arcu, et lacinia est suscipit nec. Morbi varius odio pretium turpis ornare, ut sollicitudin nunc egestas. Aliquam pulvinar massa odio, id tempor purus suscipit id. Nunc imperdiet sapien ligula, ut pretium lacus efficitur sit amet. Sed sed urna sed erat tempus sagittis quis eget elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Duis accumsan hendrerit nunc, in sagittis tellus. Vivamus mattis ligula sed dolor lacinia iaculis. Pellentesque vel turpis est. Nam pellentesque diam id arcu pharetra, et consectetur eros facilisis. Aliquam erat volutpat.
143+
*
144+
* Phasellus ac quam pretium, convallis dui id, vestibulum nibh. Fusce vulputate interdum ullamcorper. Sed nec erat varius, sagittis ipsum eget, interdum ex. Ut sed leo sit amet ligula ullamcorper facilisis et convallis tellus. Nullam consectetur vitae lorem vel mattis. Suspendisse ultrices ornare leo, ut porttitor est finibus vel. Ut faucibus arcu eget sapien lobortis, a luctus arcu posuere. Vivamus faucibus mauris facilisis enim ornare dapibus.
145+
*
146+
* Quisque pharetra et orci non aliquet. Sed urna ipsum, commodo et ultricies sed, volutpat at nunc. Cras non lectus ac mauris lobortis efficitur vel ac ante. Mauris vestibulum risus at mauris pretium, vel iaculis dolor pretium. Nam fringilla fermentum lacus et varius. Nulla pulvinar maximus tortor, et venenatis ipsum luctus id. Integer hendrerit tellus felis, eget hendrerit dolor aliquam sit amet.
147+
*
148+
* Aenean elementum risus sed enim egestas, vitae imperdiet urna eleifend. Donec elementum leo neque, eu consequat eros placerat vel. Integer pulvinar sem feugiat, tincidunt erat a, porta nulla. Mauris eu urna egestas, facilisis ex sodales, sollicitudin quam. Integer porta metus et nunc blandit lacinia. Integer posuere mauris et dui ornare, a finibus neque tristique. Cras sit amet lectus nunc. Nam facilisis tincidunt efficitur.
149+
*/
150+
def loremIpsum[T](a: T): Map[T, T] = ???
151+
137152
protected[example] val valWithScopeModifier = ???
138153
protected[this] val valWithScopeModifierThis = ???
139154

scaladoc/resources/dotty_res/scripts/ux.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ window.addEventListener("DOMContentLoaded", () => {
2020
$(this).parent().toggleClass("expanded")
2121
});
2222

23+
document.querySelectorAll("#sideMenu2 a").forEach(elem => elem.addEventListener('click', e => e.stopPropagation()))
24+
2325
$('.names .tab').on('click', function() {
2426
parent = $(this).parents(".tabs").first()
2527
shown = $(this).hasClass('selected')
@@ -56,6 +58,19 @@ window.addEventListener("DOMContentLoaded", () => {
5658
window.location = pathToRoot; // global variable pathToRoot is created by the html renderer
5759
};
5860
}
61+
62+
document.querySelectorAll('.documentableAnchor').forEach(elem => {
63+
elem.addEventListener('click', event => {
64+
var $temp = $("<input>")
65+
$("body").append($temp)
66+
var a = document.createElement('a')
67+
a.href = $(elem).attr("link")
68+
$temp.val(a.href).select();
69+
document.execCommand("copy")
70+
$temp.remove();
71+
})
72+
})
73+
5974
hljs.registerLanguage("scala", highlightDotty);
6075
hljs.registerAliases(["dotty", "scala3"], "scala");
6176
hljs.initHighlighting();

scaladoc/resources/dotty_res/styles/colors.css

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
--grey600: hsl(193, 14%, 52%);
1515
--grey700: hsl(193, 14%, 42%);
1616
--grey800: hsl(193, 12%, 28%);
17+
--grey850: hsl(193, 12%, 22%);
1718
--grey900: hsl(193, 12%, 16%);
19+
--grey930: hsl(193, 11%, 14%);
1820

1921
/* Blue */
2022
--blue100: hsl(200, 64%, 92%);
@@ -73,6 +75,9 @@
7375
--leftbar-current-fg: var(--blue500);
7476
--leftbar-hover-bg: var(--blue100);
7577
--leftbar-hover-fg: var(--grey900);
78+
--leftbar-border: var(--grey300);
79+
80+
--leftbar-dropdown-bg: var(--grey200);
7681

7782
--footer-bg: var(--white);
7883
--footer-fg: var(--grey700);
@@ -90,43 +95,46 @@
9095
:root.theme-dark {
9196
color-scheme: dark;
9297

93-
--border-light: var(--blue800);
94-
--border-medium: var(--blue700);
98+
--border-light: var(--grey800);
99+
--border-medium: var(--grey600);
95100

96-
--body-bg: var(--blue900);
101+
--body-bg: var(--grey930);
97102
--body-fg: var(--grey300);
98-
--title-fg: var(--blue200);
103+
--title-fg: var(--grey200);
99104

100105
--active-bg: var(--blue500);
101106
--active-bg-shadow: var(--blue400);
102107
--active-fg: var(--grey300);
103108

104-
--inactive-bg: var(--grey800);
105-
--inactive-bg-shadow: var(--grey600);
106-
--inactive-fg: var(--grey600);
109+
--inactive-bg: var(--grey700);
110+
--inactive-bg-shadow: var(--grey500);
111+
--inactive-fg: var(--grey500);
107112

108-
--code-bg: var(--blue800);
113+
--code-bg: var(--grey850);
109114
--code-fg: var(--grey400);
110115
--symbol-fg: var(--grey300);
111-
--documentable-bg: var(--blue800);
116+
--documentable-bg: var(--grey850);
112117

113118
--link-fg: var(--blue400);
114119
--link-hover-fg: var(--blue300);
115120
--link-sig-fg: var(--blue400);
116121

117-
--leftbar-bg: var(--black);
122+
--leftbar-bg: var(--grey930);
118123
--leftbar-fg: var(--grey300);
119-
--leftbar-current-bg: var(--blue700);
124+
--leftbar-current-bg: var(--grey700);
120125
--leftbar-current-fg: var(--white);
121-
--leftbar-hover-bg: var(--blue800);
126+
--leftbar-hover-bg: var(--grey800);
122127
--leftbar-hover-fg: var(--grey300);
128+
--leftbar-border: var(--grey800);
129+
130+
--leftbar-dropdown-bg: var(--grey850);
123131

124-
--footer-bg: var(--blue900);
132+
--footer-bg: var(--grey930);
125133
--footer-fg: var(--grey400);
126134

127135
--icon-color: var(--grey600);
128-
--selected-fg: var(--blue800);
129-
--selected-bg: var(--blue200);
136+
--selected-fg: var(--grey800);
137+
--selected-bg: var(--grey200);
130138

131139
--tab-selected: var(--white);
132140
--tab-default: var(--grey300);

scaladoc/resources/dotty_res/styles/filter-bar.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.documentableFilter {
22
padding: 24px 24px 24px 12px;
3-
background-color: var(--code-bg);
3+
background-color: var(--documentable-bg);
44
}
55

66
.documentableFilter.active .filterToggleButton svg {

0 commit comments

Comments
 (0)