From 7a875ee7d20b67725debd4c2c9e1f93e1889c302 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Fri, 29 Jul 2022 14:32:24 +0200 Subject: Add member icons to navigation menu (#2578) --- .../images/nav-icons/abstract-class-kotlin.svg | 22 ++++++ .../dokka/images/nav-icons/abstract-class.svg | 20 ++++++ .../dokka/images/nav-icons/annotation-kotlin.svg | 9 +++ .../dokka/images/nav-icons/annotation.svg | 7 ++ .../dokka/images/nav-icons/class-kotlin.svg | 9 +++ .../resources/dokka/images/nav-icons/class.svg | 7 ++ .../dokka/images/nav-icons/enum-kotlin.svg | 9 +++ .../main/resources/dokka/images/nav-icons/enum.svg | 7 ++ .../dokka/images/nav-icons/exception-class.svg | 7 ++ .../dokka/images/nav-icons/field-value.svg | 6 ++ .../dokka/images/nav-icons/field-variable.svg | 6 ++ .../resources/dokka/images/nav-icons/function.svg | 7 ++ .../dokka/images/nav-icons/interface-kotlin.svg | 9 +++ .../resources/dokka/images/nav-icons/interface.svg | 7 ++ .../resources/dokka/images/nav-icons/object.svg | 9 +++ .../resources/dokka/scripts/navigation-loader.js | 5 +- .../base/src/main/resources/dokka/styles/style.css | 82 ++++++++++++++++++++-- 17 files changed, 222 insertions(+), 6 deletions(-) create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/class.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/function.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg create mode 100644 plugins/base/src/main/resources/dokka/images/nav-icons/object.svg (limited to 'plugins/base/src/main/resources') diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg new file mode 100644 index 00000000..a2069b8f --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class-kotlin.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg new file mode 100644 index 00000000..60182030 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/abstract-class.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg new file mode 100644 index 00000000..932f1d3d --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/annotation-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg new file mode 100644 index 00000000..b80c54b4 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/annotation.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg new file mode 100644 index 00000000..46a21f65 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/class-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/class.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/class.svg new file mode 100644 index 00000000..3f1ad167 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg new file mode 100644 index 00000000..4a854596 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/enum-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg new file mode 100644 index 00000000..fa7f2476 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/enum.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg new file mode 100644 index 00000000..c0b2bdeb --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/exception-class.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg new file mode 100644 index 00000000..20449c94 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/field-value.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg new file mode 100644 index 00000000..3b074500 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/field-variable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/function.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/function.svg new file mode 100644 index 00000000..f0da64a0 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/function.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg new file mode 100644 index 00000000..bf07a148 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/interface-kotlin.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg new file mode 100644 index 00000000..32063ba2 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/interface.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/images/nav-icons/object.svg b/plugins/base/src/main/resources/dokka/images/nav-icons/object.svg new file mode 100644 index 00000000..9f427de4 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/images/nav-icons/object.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plugins/base/src/main/resources/dokka/scripts/navigation-loader.js b/plugins/base/src/main/resources/dokka/scripts/navigation-loader.js index 9c824b91..92464911 100644 --- a/plugins/base/src/main/resources/dokka/scripts/navigation-loader.js +++ b/plugins/base/src/main/resources/dokka/scripts/navigation-loader.js @@ -59,7 +59,10 @@ scrollNavigationToSelectedElement = () => { return } - let isPackageElement = selectedElement.children.length > 1 + let hasIcon = selectedElement.querySelectorAll(":scope > div.overview span.nav-icon").length > 0 + + // for instance enums also have children and are expandable, but are not package/module elements + let isPackageElement = selectedElement.children.length > 1 && !hasIcon if (isPackageElement) { // if package is selected or linked, it makes sense to align it to top // so that you can see all the members it contains diff --git a/plugins/base/src/main/resources/dokka/styles/style.css b/plugins/base/src/main/resources/dokka/styles/style.css index e32ec063..6a9d2a87 100644 --- a/plugins/base/src/main/resources/dokka/styles/style.css +++ b/plugins/base/src/main/resources/dokka/styles/style.css @@ -271,13 +271,13 @@ p.paragraph:first-child, #main { width: 100%; - max-width: calc(100% - 280px); + max-width: calc(100% - 300px); display: flex; flex-direction: column; } #leftColumn { - width: 280px; + width: 300px; border-right: 1px solid var(--border-color); display: flex; flex-direction: column; @@ -448,7 +448,7 @@ code.paragraph { box-sizing: border-box; content: ''; top: 0; - width: 280px; + width: 300px; right: 0; bottom: 0; position: absolute; @@ -502,6 +502,78 @@ code.paragraph { display: none; } +.overview .nav-link-grid { + display: grid; + grid-template-columns: 16px auto; /* first is the icon, then name */ + grid-gap: 6px; + align-items: center; +} + +.nav-icon { + width: 16px; + height: 16px; +} + +.nav-icon.class::before { + content: url("../images/nav-icons/class.svg"); +} + +.nav-icon.class-kt::before { + content: url("../images/nav-icons/class-kotlin.svg"); +} + +.nav-icon.function::before { + content: url("../images/nav-icons/function.svg"); +} + +.nav-icon.enum-class::before { + content: url("../images/nav-icons/enum.svg"); +} + +.nav-icon.enum-class-kt::before { + content: url("../images/nav-icons/enum-kotlin.svg"); +} + +.nav-icon.annotation-class::before { + content: url("../images/nav-icons/annotation.svg"); +} + +.nav-icon.annotation-class-kt::before { + content: url("../images/nav-icons/annotation-kotlin.svg"); +} + +.nav-icon.abstract-class::before { + content: url("../images/nav-icons/abstract-class.svg"); +} + +.nav-icon.abstract-class-kt::before { + content: url("../images/nav-icons/abstract-class-kotlin.svg"); +} + +.nav-icon.exception-class::before { + content: url("../images/nav-icons/exception-class.svg"); +} + +.nav-icon.interface::before { + content: url("../images/nav-icons/interface.svg"); +} + +.nav-icon.interface-kt::before { + content: url("../images/nav-icons/interface-kotlin.svg"); +} + +.nav-icon.object::before { + content: url("../images/nav-icons/object.svg"); +} + +.nav-icon.val::before { + content: url("../images/nav-icons/field-value.svg"); +} + +.nav-icon.var::before { + content: url("../images/nav-icons/field-variable.svg"); +} + .filtered > a, .filtered > .navButton { display: none; } @@ -1118,7 +1190,7 @@ div.runnablesample { #leftColumn { position: fixed; - margin-left: -280px; + margin-left: -300px; transition: margin .2s ease-out; z-index: 4; background: white; @@ -1147,7 +1219,7 @@ div.runnablesample { } #leftColumn.open ~ #main #leftToggler { - margin-left: 280px; + margin-left: 300px; } .icon-toggler::before { -- cgit