diff --git a/.gitattributes b/.gitattributes
index 6b049d6c54..f4ac216e83 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,8 @@
*.dart text eol=lf
*.yaml text eol=lf
+lib/resources/styles.css linguist-generated=true
+
# Don't collapse in github code reviews by default.
lib/src/version.dart linguist-generated=false
lib/src/html/resources.g.dart linguist-generated=false
@@ -9,6 +11,7 @@ lib/src/html/resources.g.dart linguist-generated=false
# At the end of a rebase or a merge, the dev may still need to regenerate
# these files with `dart run tool/task.dart build`.
lib/resources/docs.dart.js merge=theirs
+lib/resources/styles.css merge=theirs
lib/resources/docs.dart.js.map merge=theirs
lib/src/generator/templates.aot_renderers_for_html.dart merge=theirs
lib/src/generator/templates.aot_renderers_for_md.dart merge=theirs
diff --git a/lib/resources/styles.css b/lib/resources/styles.css
index cdb7346ce3..65f847867b 100644
--- a/lib/resources/styles.css
+++ b/lib/resources/styles.css
@@ -1,1340 +1 @@
-.light-theme {
- /*background-color body, listdropdown*/
- --main-bg-color: #fff;
- /*header id-tittle*/
- --main-header-color: #eeeeee;
- /*package-name*/
- --main-sidebar-color: #727272;
- /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/
- --main-text-color: #111111;
- /*typehead search-box*/
- --main-search-bar: #fff;
- /* scrollbar-thumb */
- --main-scrollbar-color: #CCC;
- /* footer */
- --main-footer-background: #111111;
- /*header text color*/
- --main-h-text: black;
- /* hyperlinks*/
- --main-hyperlinks-color: #0175C2;
- /*search background*/
- --main-search-background: transparent;
-
- /*code snippets*/
- --main-code-bg: #f8f8f8;
- --main-keyword-color: #333;
- --main-tag-color: #000080;
- --main-section-color: #900;
- --main-comment-color: #998;
- --main-var-color: #008080;
- --main-string-color: #d14;
-
- --main-number-filter: invert(0%);
- --main-icon-color: black;
-
- /* alerts */
- --alert-info: #e7f8ff;
- --alert-tip: #ecfaf7;
- --alert-important: #e2dbff;
- --alert-warning: #fcf8e3;
- --alert-error: #fde9ee;
-}
-
-.dark-theme {
- /*background-color body, listdropdown*/
- --main-bg-color: #10161E;
- /*header id-tittle*/
- --main-header-color: #1C2834;
- /*package-name*/
- --main-sidebar-color: #fff;
- /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/
- --main-text-color: #fff;
- /*typehead search-box*/
- --main-search-bar: #454545;
- /* scrollbar-thumb */
- --main-scrollbar-color: #5f6368;
- /* footer */
- --main-footer-background: #27323a;
- /* hyperlinks*/
- --main-hyperlinks-color: #00D2FA;
- /*search background*/
- --main-search-background: black;
-
- /*code snippets*/
- --main-code-bg: #10161E;
- --main-keyword-color: white;
- --main-tag-color: #00D2FA;
- --main-section-color: #FF2D64;
- --main-comment-color: #909CC3;
- --main-var-color: #55A09B;
- --main-string-color: #FF2D64;
-
- --main-number-filter: invert(100%);
- --main-icon-color: white;
-
- /* alerts */
- --alert-info: #043875;
- --alert-tip: #065517;
- --alert-important: #4a00b4;
- --alert-warning: #7b6909;
- --alert-error: #7a0c17;
-}
-
-#theme {
- display: none;
-}
-
-#theme-button {
- position: absolute;
- right: 30px;
- height: 24px;
-}
-
-#theme-button .material-symbols-outlined {
- color: var(--main-icon-color);
- user-select: none;
- cursor: pointer;
-}
-
-#theme-button .material-symbols-outlined:hover {
- color: var(--main-hyperlinks-color);
-}
-
-li .material-symbols-outlined, dt .material-symbols-outlined {
- font-size: 1em;
- vertical-align: text-bottom;
-}
-
-dt .material-symbols-outlined {
- text-indent: 0;
-}
-
-.light-theme #light-theme-button {
- display: none;
-}
-
-.dark-theme #dark-theme-button {
- display: none;
-}
-
-/*
-Only show images that fit their theme using GitHub's syntax, see:
-https://github.blog/changelog/2021-11-24-specify-theme-context-for-images-in-markdown/
-*/
-.dark-theme img[src$="#gh-light-mode-only"] {
- display: none;
-}
-
-.light-theme img[src$="#gh-dark-mode-only"] {
- display: none;
-}
-
-/* for layout */
-html,
-body {
- margin: 0;
- padding: 0;
- height: 100%;
- width: 100%;
- overflow: hidden;
- box-sizing: border-box;
-}
-
-*, *:before, *:after {
- box-sizing: inherit;
-}
-
-body {
- display: flex;
- flex-direction: column;
- -webkit-overflow-scrolling: touch;
-}
-
-header {
- flex: 0 0 50px;
- display: flex;
- flex-direction: row;
- align-items: center;
- padding-left: 30px;
- padding-right: 30px;
- background-color: var(--main-header-color);
-}
-
-header ol {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-header ol li {
- display: inline;
-}
-
-header form {
- display: flex;
- flex: 1;
- justify-content: flex-end;
-}
-
-header#header-search-sidebar {
- height: 50px;
- margin-bottom: 25px;
-}
-
-footer {
- flex: 0 0 16px;
- text-align: center;
- padding: 16px 20px;
-}
-
-main {
- flex: 1;
- display: flex;
- flex-direction: row;
- min-height: 0;
-}
-
-.sidebar-offcanvas-left {
- flex: 0 1 230px;
- order: 1;
- overflow-y: scroll;
- padding: 20px 0 15px 30px;
- margin: 5px 20px 0 0;
-}
-
-::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0; background-color: #AAA; }
-::-webkit-scrollbar-button:hover{ background-color: #AAA; }
-::-webkit-scrollbar-thumb{ background-color: var(--main-scrollbar-color); }
-::-webkit-scrollbar-thumb:hover{ background-color: var(--main-scrollbar-color); }
-::-webkit-scrollbar{ width: 4px; }
-
-.main-content::-webkit-scrollbar{ width: 8px; }
-
-.main-content {
- flex: 1;
- order: 2;
- overflow-y: scroll;
- padding: 10px 20px 0 20px;
-}
-
-.sidebar-offcanvas-right {
- flex: 0 1 12em;
- order: 3;
- overflow-y: scroll;
- padding: 20px 15px 15px 15px;
- margin-top: 5px;
- margin-right: 20px;
-}
-/* end for layout */
-
-body {
- -webkit-text-size-adjust: 100%;
- overflow-x: hidden;
- font-family: Roboto, sans-serif;
- font-size: 16px;
- line-height: 1.42857143;
- color: var(--main-text-color);
- background-color: var(--main-bg-color);
-}
-
-nav.navbar {
- background-color: inherit;
- min-height: 50px;
- border: 0;
-}
-
-@media (max-width: 840px) {
- .hidden-xs {
- display: none !important;
- }
-}
-
-@media (min-width: 841px) {
- .hidden-l {
- display: none !important;
- }
-}
-
-nav.navbar .row {
- padding-top: 8px;
-}
-
-nav .container {
- white-space: nowrap;
-}
-
-header {
- background-color: var(--main-header-color);
- box-shadow: 0 3px 5px rgba(0,0,0,0.1);
-}
-
-.pre {
- border: 1px solid #ddd;
- font-size: 14px;
-}
-
-.hljs-string, .hljs-doctag {
- color: var(--main-string-color);
-}
-
-.hljs-number, .hljs-literal, .hljs-variable, .hljs-template-variable, .hljs-tag .hljs-attr {
- color: var(--main-var-color);
-}
-
-.hljs-comment, .hljs-quote {
- color: var(--main-comment-color);
- font-style: italic;
-}
-
-.hljs-title, .hljs-section, .hljs-selector-id {
- color: var(--main-section-color);
- font-weight: bold;
-}
-
-.hljs-tag, .hljs-name, .hljs-attribute {
- color: var(--main-tag-color);
- font-weight: normal;
-}
-
-.hljs-keyword, .hljs-selector-tag, .hljs-subst {
- color: var(--main-keyword-color);
- font-weight: bold;
-}
-
-.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
- color: var(--main-text-color);
- background: var(--main-code-bg);
-}
-
-a {
- text-decoration: none;
-}
-
-section {
- /* Note that the generated HTML for pub packages may have `section` tags
- transformed into `div` tags. */
- margin-bottom: 36px;
-}
-
-dl {
- margin: 0;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: Roboto, sans-serif;
- font-weight: 400;
- margin-top: 1.5em;
- color: var(--main-text-color);
-}
-
-h1.title {
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-h1 {
- font-size: 37px;
- margin-top: 0;
- margin-bottom: 0.67em;
-}
-
-h2 {
- font-size: 28px;
-}
-
-h5 {
- font-size: 16px;
-}
-
-p {
- margin-bottom: 1em;
- margin-top: 0;
-}
-
-a {
- color: var(--main-hyperlinks-color);
-}
-
-a:hover {
- color: #13B9FD;
-}
-
-pre.prettyprint {
- font-family: 'Roboto Mono', Menlo, monospace;
- color: black;
- border-radius: 0;
- font-size: 15px;
- word-wrap: normal;
- line-height: 1.4;
- border: 0;
- margin: 16px 0 16px 0;
- padding: 8px;
-}
-
-pre code {
- white-space: pre;
- word-wrap: initial;
- font-size: 100%
-}
-
-.fixed {
- white-space: pre;
-}
-
-pre {
- border: 1px solid #ddd;
- background-color: #eee;
- font-size: 14px;
-}
-
-code {
- font-family: 'Roboto Mono', Menlo, monospace;
- color: inherit;
- padding: 0.2em 0.4em;
- font-size: 85%;
- background-color: rgba(27,31,35,0.05);
- border-radius: 3px;
-}
-
-@media(max-width: 840px) {
- nav .container {
- width: 100%
- }
-
- h1 {
- font-size: 24px;
- }
-
- pre {
- margin: 16px 0;
- }
-}
-
-header h1 {
- font-weight: 400;
- margin-bottom: 16px;
-}
-
-header a,
-header p,
-header li {
- color: #0175C2;
-}
-
-header a:hover {
- color: #0175C2;
-}
-
-header h1 .kind {
- color: #555;
-}
-
-dt {
- font-weight: normal;
-}
-
-dd {
- color: var(--main-text-color);
- margin-bottom: 1em;
- margin-left: 0;
-}
-
-dd.callable, dd.constant, dd.property {
- margin-bottom: 24px;
-}
-
-dd p {
- overflow-x: hidden;
- text-overflow: ellipsis;
- margin-bottom: 0;
-}
-
-/* Enum values do not have their own pages; their full docs are presented on the
- * enum class's page. */
-dt.constant + dd p {
- margin-bottom: 1em;
-}
-
-/* indents wrapped lines */
-/* Note that the generated HTML for pub packages may have `section` tags
- transformed into `div` tags, so we have two selectors here. */
-section.summary dt, div.summary dt {
- margin-left: 24px;
- text-indent: -24px;
-}
-
-.dl-horizontal dd {
- margin-left: initial;
-}
-
-dl.dl-horizontal dt {
- font-style: normal;
- text-align: left;
- color: #727272;
- margin-right: 20px;
- width: initial;
-}
-
-dt .name {
- font-weight: 500;
-}
-
-dl dt.callable .name {
- float: none;
- width: auto;
-}
-
-.type-parameter {
- white-space: nowrap;
-}
-
-.multi-line-signature .type-parameter .parameter {
- margin-left: 0;
- display: unset;
-}
-
-.parameter-list {
- display: table-cell;
- margin-left: 10px;
- list-style-type: none;
- padding-inline-start: unset;
-}
-
-.parameter-list.single-line {
- display: inline;
- margin-left: 0;
-}
-
-.parameter-list.single-line > li {
- display: inline;
-}
-
-.parameter-list.single-line > li > .parameter {
- display: inline;
- margin-left: 0;
- text-indent: 0;
-}
-
-.signature {
- color: var(--main-text-color);
-}
-
-.signature a {
- color: var(--main-hyperlinks-color);
-}
-
-.optional {
- font-style: italic;
-}
-
-.undocumented {
- font-style: italic;
-}
-
-.is-const {
- font-style: italic;
-}
-
-.deprecated {
- text-decoration: line-through;
-}
-
-.category.linked {
- font-weight: bold;
- opacity: 1;
-}
-
-/* Colors for category based on categoryOrder in dartdoc_options.config. */
-.category.cp-0 {
- background-color: #54b7c4
-}
-
-.category.cp-1 {
- background-color: #54c47f
-}
-
-.category.cp-2 {
- background-color: #c4c254
-}
-
-.category.cp-3 {
- background-color: #c49f54
-}
-
-.category.cp-4 {
- background-color: #c45465
-}
-
-.category.cp-5 {
- background-color: #c454c4
-}
-
-.category a {
- color: white;
-}
-
-.category {
- padding: 2px 4px;
- font-size: 12px;
- border-radius: 4px;
- background-color: #999;
- text-transform: uppercase;
- color: white;
- opacity: .5;
-}
-
-h1 .category {
- vertical-align: middle;
-}
-
-/* Do not display "provided by X extension" text on extension pages. */
-.main-content.extension-page .from-extension {
- display: none;
-}
-
-sup.muted {
- color: var(--main-sidebar-color);
- font-size: 0.6em;
-}
-
-.from-extension > span {
- background-color: var(--alert-warning);
- font-style: italic;
- padding: 2px;
-}
-
-/* The badge under a declaration for things like "const", "read-only", etc. and for the badges inline like sealed or interface */
-/* See https://github.com/dart-lang/dartdoc/blob/main/lib/src/model/feature.dart */
-.feature {
- display: inline-block;
- background: var(--main-bg-color);
- border: 1px solid var(--main-hyperlinks-color);
- border-radius: 20px;
- color: var(--main-hyperlinks-color);
-
- font-size: 12px;
- padding: 1px 6px;
- margin: 0 8px 0 0;
-}
-
-a.feature:hover {
- border-color: #13B9FD;
-}
-
-h1 .feature {
- vertical-align: middle;
- margin: 0 -2px 0 0;
-}
-
-.source-link {
- padding: 18px 4px;
- font-size: 18px;
- vertical-align: middle;
-}
-
-@media (max-width: 840px) {
- .source-link {
- padding: 7px 2px;
- font-size: 10px;
- }
-}
-
-#external-links {
- float: right;
-}
-
-.btn-group {
- position: relative;
- display: inline-flex;
- vertical-align: middle;
-}
-
-footer {
- color: #fff;
- background-color: var(--main-footer-background);
- width: 100%;
-}
-
-footer p {
- margin: 0;
-}
-
-footer .no-break {
- white-space: nowrap;
-}
-
-footer .container {
- padding-left: 0;
- padding-right: 0;
-}
-
-footer a, footer a:hover {
- color: #fff;
-}
-
-.markdown.desc {
- margin-bottom: 1em;
- max-width: 700px;
-}
-
-.markdown h1 {
- font-size: 24px;
- margin-bottom: 8px;
-}
-
-.markdown h2 {
- font-size: 20px;
- margin-top: 24px;
- margin-bottom: 8px;
-}
-
-.markdown h3 {
- font-size: 18px;
- margin-bottom: 8px;
- color: var(--main-text-color);
-}
-
-.markdown h4 {
- font-size: 16px;
- margin-bottom: 0;
-}
-
-.markdown li p {
- margin: 0;
-}
-
-table {
- margin-bottom: 1em;
-}
-
-table,
-th,
-td {
- border: 1px solid lightgrey;
- border-collapse: collapse;
-}
-
-th,
-td {
- padding: 8px;
-}
-
-.gt-separated {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-
-.gt-separated li {
- display: inline-block;
-}
-
-.gt-separated li:before {
- background-image: url("data:image/svg+xml;utf8,");
- background-position: center;
- content: "\00a0";
- margin: 0 6px 0 4px;
- padding: 0 3px 0 0;
-}
-
-.gt-separated.dark li:before {
- background-image: url("data:image/svg+xml;utf8,");
-}
-
-.gt-separated li:first-child:before {
- background-image: none;
- content: "";
- margin: 0;
- padding: 0;
-}
-
-.multi-line-signature {
- font-size: 17px;
- color: #727272;
-}
-
-.multi-line-signature .parameter {
- margin-left: 60px;
- display: block;
- text-indent: -36px;
-}
-
-.breadcrumbs {
- padding: 0;
- margin: 8px 0 8px 0;
- white-space: nowrap;
- line-height: 1;
-}
-
-@media screen and (min-width: 840px) {
- nav ol.breadcrumbs {
- float: left;
- }
-}
-
-@media screen and (max-width: 840px) {
- .breadcrumbs {
- margin: 0 0 24px 0;
- overflow-x: hidden;
- }
-}
-
-.breadcrumbs .gt-separated .dark .hidden-xs li+li:before {
- color: var(--main-h-text);
-}
-
-ol.breadcrumbs li a {
- color: var(--main-hyperlinks-color);
-}
-
-.self-crumb {
- color: var(--main-h-text);
-}
-
-.self-name {
- color: #555;
- display: none;
-}
-
-.annotation-list {
- list-style: none;
- padding: 0;
- display: inline;
-}
-
-.comma-separated {
- list-style: none;
- padding: 0;
- display: inline;
-}
-
-.comma-separated li {
- display: inline;
-}
-
-.comma-separated li:after {
- content: ", ";
-}
-
-.comma-separated li:last-child:after {
- content: "";
-}
-
-.end-with-period li:last-child:after {
- content: ".";
-}
-
-.container > section:first-child {
- border: 0;
-}
-
-.constructor-modifier {
- font-style: italic;
-}
-
-/* Note that the generated HTML for pub packages may have `section` tags
- transformed into `div` tags, so we have two selectors here. */
-section.multi-line-signature div.parameters,
-div.multi-line-signature div.parameters {
- margin-left: 24px;
-}
-
-/* sidebar styles */
-
-.sidebar ol {
- list-style: none;
- line-height: 22px;
- margin-top: 0;
- margin-bottom: 0;
- padding: 0 0 15px 0;
-}
-
-.sidebar h5 a,
-.sidebar h5 a:hover {
- color: var(--main-sidebar-color);
-}
-
-.sidebar h5,
-.sidebar ol li {
- text-overflow: ellipsis;
- overflow: hidden;
- padding: 3px 0 3px 3px;
-}
-
-.sidebar h5 {
- color: var(--main-sidebar-color);
- font-size: 18px;
- margin: 0 0 22px 0;
- padding-top: 0;
-}
-
-.sidebar ol li.section-title {
- font-size: 18px;
- font-weight: normal;
- text-transform: uppercase;
- padding-top: 25px;
-}
-
-.sidebar ol li.section-subtitle a {
- color: inherit;
-}
-
-.sidebar ol li.section-subtitle {
- font-weight: 400;
- text-transform: uppercase;
-}
-
-.sidebar ol li.section-subitem {
- margin-left: 12px;
-}
-
-.sidebar ol li:first-child {
- padding-top: 3px;
- margin-top: 0;
-}
-
-button {
- padding: 0;
-}
-
-#sidenav-left-toggle {
- display: none;
- vertical-align: text-bottom;
- padding: 0;
- color: var(--main-icon-color);
- user-select: none;
- cursor: pointer;
-}
-
-#sidenav-left-toggle:hover {
- color: var(--main-hyperlinks-color);
-}
-
-/* left-nav disappears, and can transition in from the left */
-@media screen and (max-width:840px) {
- #sidenav-left-toggle {
- display: inline;
- width: 24px;
- height: 24px;
- border: none;
- margin-right: 24px;
- margin-left: 24px;
- font-size: 24px;
- }
-
- #overlay-under-drawer.active {
- opacity: 0.4;
- height: 100%;
- z-index: 1999;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: black;
- display: block;
- }
-
- .sidebar-offcanvas-left {
- left: -100%;
- position: fixed;
- -webkit-transition:all .25s ease-out;
- -o-transition:all .25s ease-out;
- transition:all .25s ease-out;
- z-index: 2000;
- top: 0;
- width: 280px; /* works all the way down to an iphone 4 */
- height: 90%;
- background-color: var(--main-bg-color);
- overflow-y: scroll; /* TODO: how to hide scroll bars? */
- padding: 10px;
- margin: 10px 10px;
- box-shadow: 5px 5px 5px 5px #444444;
- }
-
- ol#sidebar-nav {
- font-size: 18px;
- white-space: pre-line;
- }
-
- .sidebar-offcanvas-left.active {
- left: 0; /* this animates our drawer into the page */
- }
-
- .self-name {
- display: inline-block;
- color: var(--main-hyperlinks-color);
- }
-}
-
-.sidebar-offcanvas-left h5 {
- margin-bottom: 10px;
-}
-
-.sidebar-offcanvas-left h5:last-of-type {
- border: 0;
- margin-bottom: 25px;
-}
-
-/* the right nav disappears out of view when the window shrinks */
-@media screen and (max-width: 992px) {
- .sidebar-offcanvas-right {
- display: none;
- }
-}
-
-#overlay-under-drawer {
- display: none;
-}
-
-/* find-as-you-type search box */
-
-.form-control {
- border-radius: 0;
- border: 0;
-}
-
-@media screen and (max-width: 840px) {
- form.search {
- display: none;
- }
-}
-
-.typeahead {
- width: 200px;
- padding: 2px 7px 1px 7px;
- line-height: 20px;
- outline: none;
-}
-
-.tt-wrapper {
- position: relative;
- display: inline-block;
-}
-
-.tt-input {
- position: relative;
- vertical-align: top;
-}
-
-.navbar-right .tt-menu {
- right: 0;
- left: inherit !important;
- width: 540px;
- max-height: 280px;
- overflow-y: scroll;
-}
-
-.navbar-right {
- padding-right: 60px;
-}
-
-.tt-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 100;
- font-size: 14px;
- margin: 0;
- background-color: var(--main-bg-color);
- border: 1px solid var(--main-header-color);
- -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
- box-shadow: 0 5px 10px rgba(0,0,0,.2);
-}
-
-
-.typeahead {
- padding: 17px 17px 17px 50px;
- width: 422px;
- height: 20px;
- font-size: 13px;
- background-image: url("./search.svg");
- background-repeat: no-repeat;
- background-position: 4%;
- outline: 0;
- background-size: 20px;
- filter: var(--main-number-filter);
- -webkit-filter: var(--main-number-filter);
-}
-
-.search-summary {
- margin-bottom: 10px;
-}
-
-a.tt-container {
- font-size: 16px;
- color: var(--main-hyperlinks-color);
-}
-
-.enter-search-message {
- position: -webkit-sticky;
- position: sticky;
- top: 0;
- background-color: #AAA;
- padding: 0;
- font-size: 14px;
- margin: 0;
- clear: both;
- text-align: center;
- color: black;
-}
-
-.tt-suggestion:hover {
- cursor: pointer;
- color: #fff;
- background-color: #0097cf;
-}
-
-.tt-suggestion:hover .search-from-lib {
- color: #ddd;
-}
-
-.tt-suggestion.tt-cursor {
- color: #fff;
- background-color: #0097cf;
-}
-
-.tt-suggestion.tt-cursor .search-from-lib {
- color: #ddd;
-}
-
-.tt-suggestion p {
- margin: 0;
-}
-
-.tt-container {
- font-size: 14px;
- margin-bottom: 0;
- margin-top: 15px;
-}
-
-.tt-container-text {
- color: var(--main-text-color);
-}
-
-
-/* Search results formatting for mini results below search bar. */
-
-.tt-search-results .tt-container {
- margin-top: 5px;
- margin-bottom: 5px;
-}
-
-/* Do not show the container as a section. */
-.tt-search-results .tt-container-text {
- display: none
-}
-
-/* An inline style. */
-.tt-search-results .tt-suggestion {
- color: var(--main-text-color);
- margin-top: 5px;
- overflow: hidden;
- padding-left: 10px;
- padding-right: 10px;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.tt-search-results .tt-suggestion-title {
- font-size: 14px;
- padding-right: 5px;
-}
-
-.tt-search-results .tt-suggestion-container {
- color: var(--main-keyword-color);
- font-size: 14px;
- font-style: italic;
- padding-right: 5px;
-}
-
-.tt-search-results .one-line-description {
- color: var(--main-keyword-color);
- display: inline;
- margin-left: 0;
-}
-
-
-.tt-search-results .one-line-description::before {
- content: open-quote;
-}
-
-.tt-search-results .one-line-description::after {
- content: close-quote;
-}
-
-/* Search results formatting for `search.html`. */
-
-/* A block style. */
-#dartdoc-main-content .tt-suggestion {
- color: var(--main-text-color);
- margin-top: 5px;
- margin-bottom: 10px;
- border-style: solid;
- border-color: lightgrey;
- border-width: 0.5px;
-}
-
-#dartdoc-main-content .tt-suggestion-title {
- display: block;
- font-weight: 500;
- margin: 4px 10px 0;
-}
-
-#dartdoc-main-content .one-line-description {
- display: block;
- margin: 2px 10px 3px;
-}
-
-/* Do not show a result's container. */
-#dartdoc-main-content .tt-suggestion-container {
- display: none;
-}
-
-@media screen and (max-width: 840px) {
- .typeahead {
- padding: 17px 17px 17px 33px;
- width: 240px;
- height: 17px;
- border: 1px solid #f5f5f5;
- background-position: 3%;
- margin: 10px 10px 10px 9px;
- }
-
- header {
- padding-left: 0;
- }
-}
-
-@media screen and (max-width: 320px) {
- #sidenav-left-toggle {
- margin-right: 10px;
- margin-left: 20px;
- }
-
- .self-name {
- margin-right: 10px;
- }
-}
-
-::placeholder {
- filter: brightness(0.85);
-}
-
-.search-body {
- border: 1px solid #7f7f7f;
- max-width: 400px;
- box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
-}
-
-/* Note that the generated HTML for pub packages may have `section` tags
- transformed into `div` tags, so we have two selectors here. */
-section#setter, div#setter {
- border-top: 1px solid #ddd;
- padding-top: 36px;
-}
-
-li.inherited a {
- opacity: 0.65;
- font-style: italic;
-}
-
-#instance-methods dt.inherited .name,
-#instance-properties dt.inherited .name,
-#operators dt.inherited .name {
- font-weight: 400;
- font-style: italic;
-}
-
-#instance-methods dt.inherited .signature,
-#instance-properties dt.inherited .signature,
-#operators dt.inherited .signature {
- font-weight: 400;
-}
-
-@media print {
- .subnav, .sidebar {
- display: none;
- }
-
- a[href]:after {
- content: "" !important;
- }
-}
-
-/* github alert styles */
-
-.markdown-alert {
- margin-top: 1rem;
- margin-bottom: 1rem;
- padding: 1.25rem;
-}
-
-.markdown-alert>:last-child {
- margin-bottom: 0;
-}
-
-.markdown-alert-title {
- display: flex;
- align-items: center;
- gap: 0.4rem;
- margin-bottom: 0.5rem;
-
- font-weight: bold;
- -webkit-font-smoothing: antialiased;
-}
-
-.markdown-alert-title:before {
- font: 24px / 1 'Material Symbols Outlined';
-}
-
-/* note, tip, important, warning, caution */
-
-.markdown-alert.markdown-alert-note {
- background-color: var(--alert-info);
-}
-
-.markdown-alert-note .markdown-alert-title:before {
- content: 'info';
-}
-
-.markdown-alert.markdown-alert-tip {
- background-color: var(--alert-tip);
-}
-
-.markdown-alert-tip .markdown-alert-title:before {
- content: 'lightbulb';
-}
-
-.markdown-alert.markdown-alert-important {
- background-color: var(--alert-important);
-}
-
-.markdown-alert-important .markdown-alert-title:before {
- content: 'feedback';
-}
-
-.markdown-alert.markdown-alert-warning {
- background-color: var(--alert-warning);
-}
-
-.markdown-alert-warning .markdown-alert-title:before {
- content: 'warning';
-}
-
-.markdown-alert.markdown-alert-caution {
- background-color: var(--alert-error);
-}
-
-.markdown-alert-caution .markdown-alert-title:before {
- content: 'report';
-}
+.light-theme{--main-bg-color: #fff;--main-header-color: #eeeeee;--main-sidebar-color: #727272;--main-text-color: #111111;--main-search-bar: #fff;--main-scrollbar-color: #CCC;--main-footer-background: #111111;--main-h-text: black;--main-hyperlinks-color: #0175C2;--main-search-background: transparent;--main-code-bg: #f8f8f8;--main-keyword-color: #333;--main-tag-color: #000080;--main-section-color: #900;--main-comment-color: #998;--main-var-color: #008080;--main-string-color: #d14;--main-number-filter: invert(0%);--main-icon-color: black;--alert-info: #e7f8ff;--alert-tip: #ecfaf7;--alert-important: #e2dbff;--alert-warning: #fcf8e3;--alert-error: #fde9ee}.light-theme #light-theme-button{display:none}.light-theme img[src$="#gh-dark-mode-only"]{display:none}.dark-theme{--main-bg-color: #10161E;--main-header-color: #1C2834;--main-sidebar-color: #fff;--main-text-color: #fff;--main-search-bar: #454545;--main-scrollbar-color: #5f6368;--main-footer-background: #27323a;--main-hyperlinks-color: #00D2FA;--main-search-background: black;--main-code-bg: #10161E;--main-keyword-color: white;--main-tag-color: #00D2FA;--main-section-color: #FF2D64;--main-comment-color: #909CC3;--main-var-color: #55A09B;--main-string-color: #FF2D64;--main-number-filter: invert(100%);--main-icon-color: white;--alert-info: #043875;--alert-tip: #065517;--alert-important: #4a00b4;--alert-warning: #7b6909;--alert-error: #7a0c17}.dark-theme #dark-theme-button{display:none}.dark-theme img[src$="#gh-light-mode-only"]{display:none}#theme{display:none}#theme-button{position:absolute;right:30px;height:24px}#theme-button .material-symbols-outlined{color:var(--main-icon-color);user-select:none;cursor:pointer}#theme-button .material-symbols-outlined:hover{color:var(--main-hyperlinks-color)}li .material-symbols-outlined,dt .material-symbols-outlined{font-size:1em;vertical-align:text-bottom}dt .material-symbols-outlined{text-indent:0}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}button{padding:0}header{flex:0 0 50px;display:flex;flex-direction:row;align-items:center;padding-left:30px;padding-right:30px;background-color:var(--main-header-color);box-shadow:0 3px 5px rgba(0,0,0,.1)}header ol{list-style:none;margin:0;padding:0}header ol li{display:inline}header form{display:flex;flex:1;justify-content:flex-end}header #header-search-sidebar{height:50px;margin-bottom:25px}footer{flex:0 0 16px;text-align:center;padding:16px 20px}main{flex:1;display:flex;flex-direction:row;min-height:0}.sidebar-offcanvas-left{flex:0 1 230px;order:1;overflow-y:scroll;padding:20px 0 15px 30px;margin:5px 20px 0 0}.sidebar-offcanvas-left h5{margin-bottom:10px}.sidebar-offcanvas-left h5:last-of-type{border:0;margin-bottom:25px}::-webkit-scrollbar-button{display:none;height:13px;border-radius:0;background-color:#aaa}::-webkit-scrollbar-button:hover{background-color:#aaa}::-webkit-scrollbar-thumb{background-color:var(--main-scrollbar-color)}::-webkit-scrollbar-thumb:hover{background-color:var(--main-scrollbar-color)}::-webkit-scrollbar{width:4px}.main-content::-webkit-scrollbar{width:8px}.main-content{flex:1;order:2;overflow-y:scroll;padding:10px 20px 0 20px}.main-content.extension-page .from-extension{display:none}.sidebar-offcanvas-right{flex:0 1 12em;order:3;overflow-y:scroll;padding:20px 15px 15px 15px;margin-top:5px;margin-right:20px}body{-webkit-text-size-adjust:100%;overflow-x:hidden;font-family:Roboto,sans-serif;font-size:16px;line-height:1.42857143;color:var(--main-text-color);background-color:var(--main-bg-color)}nav.navbar{background-color:inherit;min-height:50px;border:0}nav.navbar .row{padding-top:8px}nav .container{white-space:nowrap}@media(max-width: 840px){.hidden-xs{display:none !important}}@media(min-width: 841px){.hidden-l{display:none !important}}a{text-decoration:none}section{margin-bottom:36px}dl{margin:0}h1,h2,h3,h4,h5,h6{font-family:Roboto,sans-serif;font-weight:400;margin-top:1.5em;color:var(--main-text-color)}h1{font-size:37px;margin-top:0;margin-bottom:.67em}h1.title{overflow:hidden;text-overflow:ellipsis}h2{font-size:28px}h5{font-size:16px}p{margin-bottom:1em;margin-top:0}a{color:var(--main-hyperlinks-color)}a:hover{color:#13b9fd}.fixed{white-space:pre}pre{border:1px solid #ddd;background-color:#eee;font-size:14px}pre code{white-space:pre;word-wrap:initial;font-size:100%}code{font-family:"Roboto Mono",Menlo,monospace;color:inherit;padding:.2em .4em;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}@media(max-width: 840px){nav .container{width:100%}h1{font-size:24px}pre{margin:16px 0}}header h1{font-weight:400;margin-bottom:16px}header h1 .kind{color:#555}header a,header p,header li{color:#0175c2}header a:hover{color:#0175c2}header h1 .kind{color:#555}dt{font-weight:normal}dt.constant+dd p{margin-bottom:1em}dt .name{font-weight:500}dd{color:var(--main-text-color);margin-bottom:1em;margin-left:0}dd .callable,dd .constant,dd .property{margin-bottom:24px}dd p{overflow-x:hidden;text-overflow:ellipsis;margin-bottom:0}section.summary dt,div.summary dt{margin-left:24px;text-indent:-24px}dl.dl-horizontal dd{margin-left:initial}dl.dl-horizontal dt{font-style:normal;text-align:left;color:#727272;margin-right:20px;width:initial}dl dt.callable .name{float:none;width:auto}.multi-line-signature .type-parameter{white-space:nowrap}.multi-line-signature .type-parameter .parameter{margin-left:0;display:unset}.multi-line-signature .parameter-list{display:table-cell;margin-left:10px;list-style-type:none;padding-inline-start:unset}.multi-line-signature .parameter-list.single-line{display:inline;margin-left:0}.multi-line-signature .parameter-list.single-line>li{display:inline}.multi-line-signature .parameter-list.single-line>li>.parameter{display:inline;margin-left:0;text-indent:0}.multi-line-signature .signature{color:var(--main-text-color)}.multi-line-signature .signature a{color:var(--main-hyperlinks-color)}.multi-line-signature .optional{font-style:italic}.multi-line-signature .undocumented{font-style:italic}.multi-line-signature .is-const{font-style:italic}.multi-line-signature .deprecated{text-decoration:line-through}.category{padding:2px 4px;font-size:12px;border-radius:4px;background-color:#999;text-transform:uppercase;color:#fff;opacity:.5}.category.linked{font-weight:bold;opacity:1}.category.cp-0{background-color:#54b7c4}.category.cp-1{background-color:#54c47f}.category.cp-2{background-color:#c4c254}.category.cp-3{background-color:#c49f54}.category.cp-4{background-color:#c45465}.category.cp-5{background-color:#c454c4}.category a{color:#fff}h1 .category{vertical-align:middle}sup.muted{color:var(--main-sidebar-color);font-size:.6em}.from-extension>span{background-color:var(--alert-warning);font-style:italic;padding:2px}a.feature{display:inline-block;background:var(--main-bg-color);border:1px solid var(--main-hyperlinks-color);border-radius:20px;color:var(--main-hyperlinks-color);font-size:12px;padding:1px 6px;margin:0 8px 0 0}a.feature:hover{border-color:#13b9fd}h1 .feature{vertical-align:middle;margin:0 -2px 0 0}.source-link{padding:18px 4px;font-size:18px;vertical-align:middle}@media(max-width: 840px){.source-link{padding:7px 2px;font-size:10px}}#external-links{float:right}.btn-group{position:relative;display:inline-flex;vertical-align:middle}footer{color:#fff;background-color:var(--main-footer-background);width:100%}footer p{margin:0}footer .no-break{white-space:nowrap}footer .container{padding-left:0;padding-right:0}footer a,footer a:hover{color:#fff}.markdown.desc{margin-bottom:1em;max-width:700px}.markdown h1{font-size:24px;margin-bottom:8px}.markdown h2{font-size:20px;margin-top:24px;margin-bottom:8px}.markdown h3{font-size:18px;margin-bottom:8px;color:var(--main-text-color)}.markdown h4{font-size:16px;margin-bottom:0}.markdown li p{margin:0}table{margin-bottom:1em}table,th,td{border:1px solid #d3d3d3;border-collapse:collapse}th,td{padding:8px}.gt-separated{list-style:none;padding:0;margin:0}.gt-separated li{display:inline-block}.gt-separated li:before{background-image:url("data:image/svg+xml;utf8,");background-position:center;content:" ";margin:0 6px 0 4px;padding:0 3px 0 0}.gt-separated li:first-child:before{background-image:none;content:"";margin:0;padding:0}.gt-separated.dark li:before{background-image:url("data:image/svg+xml;utf8,")}.gt-separated.dark li:first-child:before{background-image:url("data:image/svg+xml;utf8,")}.multi-line-signature{font-size:17px;color:#727272}.multi-line-signature .parameter{margin-left:60px;display:block;text-indent:-36px}ol.breadcrumbs{padding:0;margin:8px 0 8px 0;white-space:nowrap;line-height:1}@media screen and (max-width: 840px){ol.breadcrumbs{margin:0 0 24px 0;overflow-x:hidden}}@media screen and (min-width: 841px){ol.breadcrumbs{float:left}}ol.breadcrumbs li a{color:var(--main-hyperlinks-color)}ol.breadcrumbs .gt-separated .dark .hidden-xs li+li:before{color:var(--main-h-text)}ol.breadcrumbs .self-crumb{color:var(--main-h-text)}.self-name{color:#555;display:none}.annotation-list{list-style:none;padding:0;display:inline}.comma-separated{list-style:none;padding:0;display:inline}.comma-separated li{display:inline}.comma-separated li:after{content:", "}.comma-separated li:last-child:after{content:""}.end-with-period li:last-child:after{content:"."}.container>section:first-child{border:0}.constructor-modifier{font-style:italic}section.multi-line-signature div.parameters,div.multi-line-signature div.parameters{margin-left:24px}.sidebar ol{list-style:none;line-height:22px;margin-top:0;margin-bottom:0;padding:0 0 15px 0}.sidebar ol li.section-title{font-size:18px;font-weight:normal;text-transform:uppercase;padding-top:25px}.sidebar ol li.section-subtitle{font-weight:400;text-transform:uppercase}.sidebar ol li.section-subtitle a{color:inherit}.sidebar ol li.section-subitem{margin-left:12px}.sidebar ol li:first-child{padding-top:3px;margin-top:0}.sidebar h5{color:var(--main-sidebar-color);font-size:18px;margin:0 0 22px 0;padding-top:0}.sidebar h5 a,.sidebar h5 a:hover{color:var(--main-sidebar-color)}.sidebar h5,.sidebar ol li{text-overflow:ellipsis;overflow:hidden;padding:3px 0 3px 3px}#sidenav-left-toggle{display:none;vertical-align:text-bottom;padding:0;color:var(--main-icon-color);user-select:none;cursor:pointer}#sidenav-left-toggle:hover{color:var(--main-hyperlinks-color)}@media screen and (max-width: 840px){#sidenav-left-toggle{display:inline;width:24px;height:24px;border:none;margin-right:24px;margin-left:24px;font-size:24px}#overlay-under-drawer.active{opacity:.4;height:100%;z-index:1999;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;display:block}.sidebar-offcanvas-left{left:-100%;position:fixed;-webkit-transition:all .25s ease-out;-o-transition:all .25s ease-out;transition:all .25s ease-out;z-index:2000;top:0;width:280px;height:90%;background-color:var(--main-bg-color);overflow-y:scroll;padding:10px;margin:10px 10px;box-shadow:5px 5px 5px 5px #444}.sidebar-offcanvas-left.active{left:0}ol#sidebar-nav{font-size:18px;white-space:pre-line}.self-name{display:inline-block;color:var(--main-hyperlinks-color)}}@media screen and (max-width: 992px){.sidebar-offcanvas-right{display:none}}#overlay-under-drawer{display:none}.form-control{border-radius:0;border:0}@media screen and (max-width: 840px){form.search{display:none}}.tt-wrapper{position:relative;display:inline-block}.tt-input{position:relative;vertical-align:top}.navbar-right{padding-right:60px}.navbar-right .tt-menu{right:0;left:inherit !important;width:540px;max-height:280px;overflow-y:scroll}.tt-menu{position:absolute;top:100%;left:0;z-index:100;font-size:14px;margin:0;background-color:var(--main-bg-color);border:1px solid var(--main-header-color);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.typeahead{padding:17px 17px 17px 50px;width:422px;height:20px;font-size:13px;background-image:url("./search.svg");background-repeat:no-repeat;background-position:4%;outline:0;background-size:20px;filter:var(--main-number-filter);-webkit-filter:var(--main-number-filter)}.search-summary{margin-bottom:10px}a.tt-container{font-size:16px;color:var(--main-hyperlinks-color)}.enter-search-message{position:sticky;top:0;background-color:#aaa;padding:0;font-size:14px;margin:0;clear:both;text-align:center;color:#000}.tt-suggestion:hover{cursor:pointer;color:#fff;background-color:#0097cf}.tt-suggestion .search-from-lib{color:#ddd}.tt-suggestion p{margin:0}.tt-suggestion.tt-cursor{color:#fff;background-color:#0097cf}.tt-suggestion.tt-cursor .search-from-lib{color:#ddd}.tt-container{font-size:14px;margin-bottom:0;margin-top:15px}.tt-container .tt-container-text{color:var(--main-text-color)}.tt-search-results .tt-container{margin-top:5px;margin-bottom:5px}.tt-search-results .tt-container-text{display:none}.tt-search-results .tt-suggestion{color:var(--main-text-color);margin-top:5px;overflow:hidden;padding-left:10px;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.tt-search-results .tt-suggestion-title{font-size:14px;padding-right:5px}.tt-search-results .tt-suggestion-container{color:var(--main-keyword-color);font-size:14px;font-style:italic;padding-right:5px}.tt-search-results .one-line-description{color:var(--main-keyword-color);display:inline;margin-left:0}.tt-search-results .one-line-description::before{content:open-quote}.tt-search-results .one-line-description::after{content:close-quote}#dartdoc-main-content .tt-suggestion{color:var(--main-text-color);margin-top:5px;margin-bottom:10px;border-style:solid;border-color:#d3d3d3;border-width:.5px}#dartdoc-main-content .tt-suggestion-title{display:block;font-weight:500;margin:4px 10px 0}#dartdoc-main-content .one-line-description{display:block;margin:2px 10px 3px}#dartdoc-main-content .tt-suggestion-container{display:none}@media screen and (max-width: 840px){.typeahead{padding:17px 17px 17px 33px;width:240px;height:17px;border:1px solid #f5f5f5;background-position:3%;margin:10px 10px 10px 9px}header{padding-left:0}}@media screen and (max-width: 320px){#sidenav-left-toggle{margin-right:10px;margin-left:20px}.self-name{margin-right:10px}}::placeholder{filter:brightness(0.85)}.search-body{border:1px solid #7f7f7f;max-width:400px;box-shadow:3px 3px 5px rgba(0,0,0,.1)}section#setter,div#setter{border-top:1px solid #ddd;padding-top:36px}li.inherited a{opacity:.65;font-style:italic}#instance-methods dt.inherited .name,#instance-properties dt.inherited .name,#operators dt.inherited .name{font-weight:400;font-style:italic}#instance-methods dt.inherited .signature,#instance-properties dt.inherited .signature,#operators dt.inherited .signature{font-weight:400}.markdown-alert{margin-top:1rem;margin-bottom:1rem;padding:1.25rem}.markdown-alert>:last-child{margin-bottom:0}.markdown-alert.markdown-alert-title{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-weight:bold;-webkit-font-smoothing:antialiased}.markdown-alert.markdown-alert-title:before{font:24px/1 "Material Symbols Outlined"}.markdown-alert.markdown-alert-note{background-color:var(--alert-info)}.markdown-alert.markdown-alert-note .markdown-alert-title:before{content:"info"}.markdown-alert.markdown-alert-tip{background-color:var(--alert-tip)}.markdown-alert.markdown-alert-tip .markdown-alert-title:before{content:"lightbulb"}.markdown-alert.markdown-alert-important{background-color:var(--alert-important)}.markdown-alert.markdown-alert-important .markdown-alert-title:before{content:"feedback"}.markdown-alert.markdown-alert-warning{background-color:var(--alert-warning)}.markdown-alert.markdown-alert-warning .markdown-alert-title:before{content:"warning"}.markdown-alert.markdown-alert-caution{background-color:var(--alert-error)}.markdown-alert.markdown-alert-caution .markdown-alert-title:before{content:"report"}@media print{.subnav,.sidebar{display:none}a[href]:after{content:"" !important}}
\ No newline at end of file
diff --git a/pubspec.yaml b/pubspec.yaml
index 334e5b7224..cac30bc795 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -27,6 +27,7 @@ dev_dependencies:
dart_style: ^2.3.7
lints: ^5.0.0
matcher: ^0.12.15
+ sass: ^1.80.4
test: ^1.24.2
test_descriptor: ^2.0.1
test_process: ^2.0.3
diff --git a/tool/task.dart b/tool/task.dart
index d6eb083c1b..4ade613f85 100644
--- a/tool/task.dart
+++ b/tool/task.dart
@@ -12,6 +12,7 @@ import 'package:crypto/crypto.dart' as crypto;
import 'package:dartdoc/src/io_utils.dart';
import 'package:dartdoc/src/package_meta.dart';
import 'package:path/path.dart' as path;
+import 'package:sass/sass.dart' as sass;
import 'package:yaml/yaml.dart' as yaml;
import 'package:yaml/yaml.dart';
@@ -177,7 +178,16 @@ Future buildWeb({bool debug = false}) async {
]);
_delete(File('lib/resources/docs.dart.js.deps'));
- var compileSig = await _calcDartFilesSig(Directory('web'));
+ final compileResult = sass.compileToResult('web/styles/styles.scss',
+ style: debug ? sass.OutputStyle.expanded : sass.OutputStyle.compressed);
+ if (compileResult.css.isNotEmpty) {
+ File('lib/resources/styles.css').writeAsStringSync(compileResult.css);
+ } else {
+ throw StateError('Compiled CSS was empty.');
+ }
+
+ var compileSig =
+ await _calcFilesSig(Directory('web'), extensions: {'.dart', '.scss'});
File(path.join('web', 'sig.txt')).writeAsStringSync('$compileSig\n');
}
@@ -189,14 +199,14 @@ void _delete(FileSystemEntity entity) {
}
}
-/// Yields all of the trimmed lines of all of the `.dart` files in [dir].
-Stream _dartFileLines(Directory dir) {
+/// Yields all of the trimmed lines of all of the files in [dir] with
+/// one of the specified [extensions].
+Stream _fileLines(Directory dir, {required Set extensions}) {
var files = dir
.listSync(recursive: true)
.whereType()
- .where((file) => file.path.endsWith('.dart'))
- .toList()
- ..sort((a, b) => compareAsciiLowerCase(a.path, b.path));
+ .where((file) => extensions.contains(path.extension(file.path)))
+ .sorted((a, b) => compareAsciiLowerCase(a.path, b.path));
return Stream.fromIterable([
for (var file in files)
@@ -824,7 +834,8 @@ Rebuild them with "dart tool/task.dart build" and check the results in.
}
// Verify that the web frontend has been compiled.
- final currentCodeSig = await _calcDartFilesSig(Directory('web'));
+ final currentCodeSig =
+ await _calcFilesSig(Directory('web'), extensions: {'.dart', '.scss'});
final lastCompileSig =
File(path.join('web', 'sig.txt')).readAsStringSync().trim();
if (currentCodeSig != lastCompileSig) {
@@ -985,8 +996,11 @@ int _findCount(String str, String match) {
return count;
}
-Future _calcDartFilesSig(Directory dir) async {
- final digest = await _dartFileLines(dir)
+Future _calcFilesSig(
+ Directory dir, {
+ required Set extensions,
+}) async {
+ final digest = await _fileLines(dir, extensions: extensions)
.transform(utf8.encoder)
.transform(crypto.md5)
.single;
diff --git a/web/sig.txt b/web/sig.txt
index 8ab527bda2..d4c1090519 100644
--- a/web/sig.txt
+++ b/web/sig.txt
@@ -1 +1 @@
-A6336370D9A2C5AE421600C7D9356FC6
+E234CE5931E162BC482C911853CEB828
diff --git a/web/styles/styles.scss b/web/styles/styles.scss
new file mode 100644
index 0000000000..80735eb2c8
--- /dev/null
+++ b/web/styles/styles.scss
@@ -0,0 +1,1298 @@
+.light-theme {
+ /*background-color body, listdropdown*/
+ --main-bg-color: #fff;
+ /*header id-tittle*/
+ --main-header-color: #eeeeee;
+ /*package-name*/
+ --main-sidebar-color: #727272;
+ /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/
+ --main-text-color: #111111;
+ /*typehead search-box*/
+ --main-search-bar: #fff;
+ /* scrollbar-thumb */
+ --main-scrollbar-color: #CCC;
+ /* footer */
+ --main-footer-background: #111111;
+ /*header text color*/
+ --main-h-text: black;
+ /* hyperlinks*/
+ --main-hyperlinks-color: #0175C2;
+ /*search background*/
+ --main-search-background: transparent;
+
+ /*code snippets*/
+ --main-code-bg: #f8f8f8;
+ --main-keyword-color: #333;
+ --main-tag-color: #000080;
+ --main-section-color: #900;
+ --main-comment-color: #998;
+ --main-var-color: #008080;
+ --main-string-color: #d14;
+
+ --main-number-filter: invert(0%);
+ --main-icon-color: black;
+
+ /* alerts */
+ --alert-info: #e7f8ff;
+ --alert-tip: #ecfaf7;
+ --alert-important: #e2dbff;
+ --alert-warning: #fcf8e3;
+ --alert-error: #fde9ee;
+
+ #light-theme-button {
+ display: none;
+ }
+
+ // If image is specified as dark mode only using GitHub's documented method,
+ // hide it in our light theme as well.
+ img[src$="#gh-dark-mode-only"] {
+ display: none;
+ }
+}
+
+.dark-theme {
+ /*background-color body, listdropdown*/
+ --main-bg-color: #10161E;
+ /*header id-tittle*/
+ --main-header-color: #1C2834;
+ /*package-name*/
+ --main-sidebar-color: #fff;
+ /*section-title and section subtitle, desc markdown(body, dd, h3), header a*/
+ --main-text-color: #fff;
+ /*typehead search-box*/
+ --main-search-bar: #454545;
+ /* scrollbar-thumb */
+ --main-scrollbar-color: #5f6368;
+ /* footer */
+ --main-footer-background: #27323a;
+ /* hyperlinks*/
+ --main-hyperlinks-color: #00D2FA;
+ /*search background*/
+ --main-search-background: black;
+
+ /*code snippets*/
+ --main-code-bg: #10161E;
+ --main-keyword-color: white;
+ --main-tag-color: #00D2FA;
+ --main-section-color: #FF2D64;
+ --main-comment-color: #909CC3;
+ --main-var-color: #55A09B;
+ --main-string-color: #FF2D64;
+
+ --main-number-filter: invert(100%);
+ --main-icon-color: white;
+
+ /* alerts */
+ --alert-info: #043875;
+ --alert-tip: #065517;
+ --alert-important: #4a00b4;
+ --alert-warning: #7b6909;
+ --alert-error: #7a0c17;
+
+ #dark-theme-button {
+ display: none;
+ }
+
+ // If image is specified as light mode only using GitHub's documented method,
+ // hide it in our dark theme as well.
+ img[src$="#gh-light-mode-only"] {
+ display: none;
+ }
+}
+
+#theme {
+ display: none;
+}
+
+#theme-button {
+ position: absolute;
+ right: 30px;
+ height: 24px;
+
+ .material-symbols-outlined {
+ color: var(--main-icon-color);
+ user-select: none;
+ cursor: pointer;
+
+ &:hover {
+ color: var(--main-hyperlinks-color);
+ }
+ }
+}
+
+li, dt {
+ .material-symbols-outlined {
+ font-size: 1em;
+ vertical-align: text-bottom;
+ }
+}
+
+dt .material-symbols-outlined {
+ text-indent: 0;
+}
+
+html,
+body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+ box-sizing: border-box;
+}
+
+*, *:before, *:after {
+ box-sizing: inherit;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ -webkit-overflow-scrolling: touch;
+}
+
+button {
+ padding: 0;
+}
+
+header {
+ flex: 0 0 50px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ padding-left: 30px;
+ padding-right: 30px;
+ background-color: var(--main-header-color);
+ box-shadow: 0 3px 5px rgba(0, 0, 0, 0.1);
+
+ ol {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ li {
+ display: inline;
+ }
+ }
+
+ form {
+ display: flex;
+ flex: 1;
+ justify-content: flex-end;
+ }
+
+ #header-search-sidebar {
+ height: 50px;
+ margin-bottom: 25px;
+ }
+}
+
+footer {
+ flex: 0 0 16px;
+ text-align: center;
+ padding: 16px 20px;
+}
+
+main {
+ flex: 1;
+ display: flex;
+ flex-direction: row;
+ min-height: 0;
+}
+
+.sidebar-offcanvas-left {
+ flex: 0 1 230px;
+ order: 1;
+ overflow-y: scroll;
+ padding: 20px 0 15px 30px;
+ margin: 5px 20px 0 0;
+
+ h5 {
+ margin-bottom: 10px;
+
+ &:last-of-type {
+ border: 0;
+ margin-bottom: 25px;
+ }
+ }
+}
+
+::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0; background-color: #AAA; }
+::-webkit-scrollbar-button:hover{ background-color: #AAA; }
+::-webkit-scrollbar-thumb{ background-color: var(--main-scrollbar-color); }
+::-webkit-scrollbar-thumb:hover{ background-color: var(--main-scrollbar-color); }
+::-webkit-scrollbar{ width: 4px; }
+
+.main-content::-webkit-scrollbar{ width: 8px; }
+
+.main-content {
+ flex: 1;
+ order: 2;
+ overflow-y: scroll;
+ padding: 10px 20px 0 20px;
+
+ /* Do not display "provided by X extension" text on extension pages. */
+ &.extension-page .from-extension {
+ display: none;
+ }
+}
+
+.sidebar-offcanvas-right {
+ flex: 0 1 12em;
+ order: 3;
+ overflow-y: scroll;
+ padding: 20px 15px 15px 15px;
+ margin-top: 5px;
+ margin-right: 20px;
+}
+
+body {
+ -webkit-text-size-adjust: 100%;
+ overflow-x: hidden;
+ font-family: Roboto, sans-serif;
+ font-size: 16px;
+ line-height: 1.42857143;
+ color: var(--main-text-color);
+ background-color: var(--main-bg-color);
+}
+
+nav {
+ &.navbar {
+ background-color: inherit;
+ min-height: 50px;
+ border: 0;
+
+ .row {
+ padding-top: 8px;
+ }
+ }
+
+ .container {
+ white-space: nowrap;
+ }
+}
+
+@media (max-width: 840px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+
+@media (min-width: 841px) {
+ .hidden-l {
+ display: none !important;
+ }
+}
+
+a {
+ text-decoration: none;
+}
+
+section {
+ /* Note that the generated HTML for pub packages may have `section` tags
+ transformed into `div` tags. */
+ margin-bottom: 36px;
+}
+
+dl {
+ margin: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: Roboto, sans-serif;
+ font-weight: 400;
+ margin-top: 1.5em;
+ color: var(--main-text-color);
+}
+
+h1 {
+ font-size: 37px;
+ margin-top: 0;
+ margin-bottom: 0.67em;
+
+ &.title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+}
+
+h2 {
+ font-size: 28px;
+}
+
+h5 {
+ font-size: 16px;
+}
+
+p {
+ margin-bottom: 1em;
+ margin-top: 0;
+}
+
+a {
+ color: var(--main-hyperlinks-color);
+
+ &:hover {
+ color: #13B9FD;
+ }
+}
+
+.fixed {
+ white-space: pre;
+}
+
+pre {
+ border: 1px solid #ddd;
+ background-color: #eee;
+ font-size: 14px;
+
+ code {
+ white-space: pre;
+ word-wrap: initial;
+ font-size: 100%
+ }
+}
+
+code {
+ font-family: 'Roboto Mono', Menlo, monospace;
+ color: inherit;
+ padding: 0.2em 0.4em;
+ font-size: 85%;
+ background-color: rgba(27,31,35,0.05);
+ border-radius: 3px;
+}
+
+@media(max-width: 840px) {
+ nav .container {
+ width: 100%
+ }
+
+ h1 {
+ font-size: 24px;
+ }
+
+ pre {
+ margin: 16px 0;
+ }
+}
+
+header {
+ h1 {
+ font-weight: 400;
+ margin-bottom: 16px;
+
+ .kind {
+ color: #555;
+ }
+ }
+
+ a, p, li {
+ color: #0175C2;
+ }
+
+ a:hover {
+ color: #0175C2;
+ }
+
+ h1 .kind {
+ color: #555;
+ }
+}
+
+dt {
+ font-weight: normal;
+
+ // Enum values do not have their own pages; their full docs are
+ // presented on the enum class's page.
+ &.constant + dd p {
+ margin-bottom: 1em;
+ }
+
+ .name {
+ font-weight: 500;
+ }
+}
+
+dd {
+ color: var(--main-text-color);
+ margin-bottom: 1em;
+ margin-left: 0;
+
+ .callable, .constant, .property {
+ margin-bottom: 24px;
+ }
+
+ p {
+ overflow-x: hidden;
+ text-overflow: ellipsis;
+ margin-bottom: 0;
+ }
+}
+
+/* indents wrapped lines */
+/* Note that the generated HTML for pub packages may have `section` tags
+ transformed into `div` tags, so we have two selectors here. */
+section, div {
+ &.summary dt {
+ margin-left: 24px;
+ text-indent: -24px;
+ }
+}
+
+dl {
+ &.dl-horizontal {
+ dd {
+ margin-left: initial;
+ }
+
+ dt {
+ font-style: normal;
+ text-align: left;
+ color: #727272;
+ margin-right: 20px;
+ width: initial;
+ }
+ }
+
+ dt.callable .name {
+ float: none;
+ width: auto;
+ }
+}
+
+.multi-line-signature {
+ .type-parameter {
+ white-space: nowrap;
+
+ .parameter {
+ margin-left: 0;
+ display: unset;
+ }
+ }
+
+ .parameter-list {
+ display: table-cell;
+ margin-left: 10px;
+ list-style-type: none;
+ padding-inline-start: unset;
+
+ &.single-line {
+ display: inline;
+ margin-left: 0;
+
+ > li {
+ display: inline;
+
+ > .parameter {
+ display: inline;
+ margin-left: 0;
+ text-indent: 0;
+ }
+ }
+ }
+ }
+
+ .signature {
+ color: var(--main-text-color);
+
+ a {
+ color: var(--main-hyperlinks-color);
+ }
+ }
+
+ .optional {
+ font-style: italic;
+ }
+
+ .undocumented {
+ font-style: italic;
+ }
+
+ .is-const {
+ font-style: italic;
+ }
+
+ .deprecated {
+ text-decoration: line-through;
+ }
+}
+
+/* Colors for category based on categoryOrder in dartdoc_options.config. */
+.category {
+ padding: 2px 4px;
+ font-size: 12px;
+ border-radius: 4px;
+ background-color: #999;
+ text-transform: uppercase;
+ color: white;
+ opacity: .5;
+
+ &.linked {
+ font-weight: bold;
+ opacity: 1;
+ }
+
+ &.cp-0 {
+ background-color: #54b7c4
+ }
+
+ &.cp-1 {
+ background-color: #54c47f
+ }
+
+ &.cp-2 {
+ background-color: #c4c254
+ }
+
+ &.cp-3 {
+ background-color: #c49f54
+ }
+
+ &.cp-4 {
+ background-color: #c45465
+ }
+
+ &.cp-5 {
+ background-color: #c454c4
+ }
+
+ a {
+ color: white;
+ }
+
+ @at-root h1 & {
+ vertical-align: middle;
+ }
+}
+
+sup.muted {
+ color: var(--main-sidebar-color);
+ font-size: 0.6em;
+}
+
+.from-extension > span {
+ background-color: var(--alert-warning);
+ font-style: italic;
+ padding: 2px;
+}
+
+/* The badge under a declaration for things like "const", "read-only", etc. and for the badges inline like sealed or interface */
+/* See https://github.com/dart-lang/dartdoc/blob/main/lib/src/model/feature.dart */
+a.feature {
+ display: inline-block;
+ background: var(--main-bg-color);
+ border: 1px solid var(--main-hyperlinks-color);
+ border-radius: 20px;
+ color: var(--main-hyperlinks-color);
+
+ font-size: 12px;
+ padding: 1px 6px;
+ margin: 0 8px 0 0;
+
+ &:hover {
+ border-color: #13B9FD;
+ }
+}
+
+h1 .feature {
+ vertical-align: middle;
+ margin: 0 -2px 0 0;
+}
+
+.source-link {
+ padding: 18px 4px;
+ font-size: 18px;
+ vertical-align: middle;
+
+ @media (max-width: 840px) {
+ padding: 7px 2px;
+ font-size: 10px;
+ }
+}
+
+#external-links {
+ float: right;
+}
+
+.btn-group {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+
+footer {
+ color: #fff;
+ background-color: var(--main-footer-background);
+ width: 100%;
+
+ p {
+ margin: 0;
+ }
+
+ .no-break {
+ white-space: nowrap;
+ }
+
+ .container {
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ a, a:hover {
+ color: #fff;
+ }
+}
+
+.markdown {
+ &.desc {
+ margin-bottom: 1em;
+ max-width: 700px;
+ }
+
+ h1 {
+ font-size: 24px;
+ margin-bottom: 8px;
+ }
+
+ h2 {
+ font-size: 20px;
+ margin-top: 24px;
+ margin-bottom: 8px;
+ }
+
+ h3 {
+ font-size: 18px;
+ margin-bottom: 8px;
+ color: var(--main-text-color);
+ }
+
+ h4 {
+ font-size: 16px;
+ margin-bottom: 0;
+ }
+
+ li p {
+ margin: 0;
+ }
+}
+
+table {
+ margin-bottom: 1em;
+}
+
+table,
+th,
+td {
+ border: 1px solid lightgrey;
+ border-collapse: collapse;
+}
+
+th,
+td {
+ padding: 8px;
+}
+
+.gt-separated {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+
+ li {
+ display: inline-block;
+
+ &:before {
+ background-image: url("data:image/svg+xml;utf8,");
+ background-position: center;
+ content: "\00a0";
+ margin: 0 6px 0 4px;
+ padding: 0 3px 0 0;
+ }
+
+ &:first-child:before {
+ background-image: none;
+ content: "";
+ margin: 0;
+ padding: 0;
+ }
+ }
+
+ &.dark li {
+ &:before {
+ background-image: url("data:image/svg+xml;utf8,");
+ }
+
+ &:first-child:before {
+ background-image: url("data:image/svg+xml;utf8,");
+ }
+ }
+}
+
+.multi-line-signature {
+ font-size: 17px;
+ color: #727272;
+
+ .parameter {
+ margin-left: 60px;
+ display: block;
+ text-indent: -36px;
+ }
+}
+
+ol.breadcrumbs {
+ padding: 0;
+ margin: 8px 0 8px 0;
+ white-space: nowrap;
+ line-height: 1;
+
+ @media screen and (max-width: 840px) {
+ margin: 0 0 24px 0;
+ overflow-x: hidden;
+ }
+
+ @media screen and (min-width: 841px) {
+ float: left;
+ }
+
+ li a {
+ color: var(--main-hyperlinks-color);
+ }
+
+ .gt-separated .dark .hidden-xs li+li:before {
+ color: var(--main-h-text);
+ }
+
+ .self-crumb {
+ color: var(--main-h-text);
+ }
+}
+
+.self-name {
+ color: #555;
+ display: none;
+}
+
+.annotation-list {
+ list-style: none;
+ padding: 0;
+ display: inline;
+}
+
+.comma-separated {
+ list-style: none;
+ padding: 0;
+ display: inline;
+
+ li {
+ display: inline;
+
+ &:after {
+ content: ", ";
+ }
+
+ &:last-child:after {
+ content: "";
+ }
+ }
+}
+
+.end-with-period li:last-child:after {
+ content: ".";
+}
+
+.container > section:first-child {
+ border: 0;
+}
+
+.constructor-modifier {
+ font-style: italic;
+}
+
+/* Note that the generated HTML for pub packages may have `section` tags
+ transformed into `div` tags, so we have two selectors here. */
+section, div {
+ &.multi-line-signature div.parameters {
+ margin-left: 24px;
+ }
+}
+
+/* sidebar styles */
+
+.sidebar {
+ ol {
+ list-style: none;
+ line-height: 22px;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0 0 15px 0;
+
+ li {
+ &.section-title {
+ font-size: 18px;
+ font-weight: normal;
+ text-transform: uppercase;
+ padding-top: 25px;
+ }
+
+ &.section-subtitle {
+ font-weight: 400;
+ text-transform: uppercase;
+
+ a {
+ color: inherit;
+ }
+ }
+
+ &.section-subitem {
+ margin-left: 12px;
+ }
+
+ &:first-child {
+ padding-top: 3px;
+ margin-top: 0;
+ }
+ }
+ }
+
+ h5 {
+ color: var(--main-sidebar-color);
+ font-size: 18px;
+ margin: 0 0 22px 0;
+ padding-top: 0;
+
+ a, a:hover {
+ color: var(--main-sidebar-color);
+ }
+ }
+
+ h5, ol li {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ padding: 3px 0 3px 3px;
+ }
+}
+
+#sidenav-left-toggle {
+ display: none;
+ vertical-align: text-bottom;
+ padding: 0;
+ color: var(--main-icon-color);
+ user-select: none;
+ cursor: pointer;
+
+ &:hover {
+ color: var(--main-hyperlinks-color);
+ }
+}
+
+/* left-nav disappears, and can transition in from the left */
+@media screen and (max-width:840px) {
+ #sidenav-left-toggle {
+ display: inline;
+ width: 24px;
+ height: 24px;
+ border: none;
+ margin-right: 24px;
+ margin-left: 24px;
+ font-size: 24px;
+ }
+
+ #overlay-under-drawer.active {
+ opacity: 0.4;
+ height: 100%;
+ z-index: 1999;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: black;
+ display: block;
+ }
+
+ .sidebar-offcanvas-left {
+ left: -100%;
+ position: fixed;
+ -webkit-transition:all .25s ease-out;
+ -o-transition:all .25s ease-out;
+ transition:all .25s ease-out;
+ z-index: 2000;
+ top: 0;
+ width: 280px;
+ height: 90%;
+ background-color: var(--main-bg-color);
+ overflow-y: scroll;
+ padding: 10px;
+ margin: 10px 10px;
+ box-shadow: 5px 5px 5px 5px #444444;
+
+ &.active {
+ left: 0; /* this animates our drawer into the page */
+ }
+ }
+
+ ol#sidebar-nav {
+ font-size: 18px;
+ white-space: pre-line;
+ }
+
+ .self-name {
+ display: inline-block;
+ color: var(--main-hyperlinks-color);
+ }
+}
+
+/* the right nav disappears out of view when the window shrinks */
+@media screen and (max-width: 992px) {
+ .sidebar-offcanvas-right {
+ display: none;
+ }
+}
+
+#overlay-under-drawer {
+ display: none;
+}
+
+/* find-as-you-type search box */
+
+.form-control {
+ border-radius: 0;
+ border: 0;
+}
+
+@media screen and (max-width: 840px) {
+ form.search {
+ display: none;
+ }
+}
+
+.tt-wrapper {
+ position: relative;
+ display: inline-block;
+}
+
+.tt-input {
+ position: relative;
+ vertical-align: top;
+}
+
+.navbar-right {
+ padding-right: 60px;
+
+ .tt-menu {
+ right: 0;
+ left: inherit !important;
+ width: 540px;
+ max-height: 280px;
+ overflow-y: scroll;
+ }
+}
+
+.tt-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 100;
+ font-size: 14px;
+ margin: 0;
+ background-color: var(--main-bg-color);
+ border: 1px solid var(--main-header-color);
+ -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+ -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2);
+ box-shadow: 0 5px 10px rgba(0,0,0,.2);
+}
+
+.typeahead {
+ padding: 17px 17px 17px 50px;
+ width: 422px;
+ height: 20px;
+ font-size: 13px;
+ background-image: url("./search.svg");
+ background-repeat: no-repeat;
+ background-position: 4%;
+ outline: 0;
+ background-size: 20px;
+ filter: var(--main-number-filter);
+ -webkit-filter: var(--main-number-filter);
+}
+
+.search-summary {
+ margin-bottom: 10px;
+}
+
+a.tt-container {
+ font-size: 16px;
+ color: var(--main-hyperlinks-color);
+}
+
+.enter-search-message {
+ position: sticky;
+ top: 0;
+ background-color: #AAA;
+ padding: 0;
+ font-size: 14px;
+ margin: 0;
+ clear: both;
+ text-align: center;
+ color: black;
+}
+
+.tt-suggestion {
+ &:hover {
+ cursor: pointer;
+ color: #fff;
+ background-color: #0097cf;
+ }
+
+ .search-from-lib {
+ color: #ddd;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ &.tt-cursor {
+ color: #fff;
+ background-color: #0097cf;
+
+ .search-from-lib {
+ color: #ddd;
+ }
+ }
+}
+
+.tt-container {
+ font-size: 14px;
+ margin-bottom: 0;
+ margin-top: 15px;
+
+ .tt-container-text {
+ color: var(--main-text-color);
+ }
+}
+
+
+/* Search results formatting for mini results below search bar. */
+
+.tt-search-results {
+ .tt-container {
+ margin-top: 5px;
+ margin-bottom: 5px;
+ }
+
+ /* Do not show the container as a section. */
+ .tt-container-text {
+ display: none
+ }
+
+ /* An inline style. */
+ .tt-suggestion {
+ color: var(--main-text-color);
+ margin-top: 5px;
+ overflow: hidden;
+ padding-left: 10px;
+ padding-right: 10px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .tt-suggestion-title {
+ font-size: 14px;
+ padding-right: 5px;
+ }
+
+ .tt-suggestion-container {
+ color: var(--main-keyword-color);
+ font-size: 14px;
+ font-style: italic;
+ padding-right: 5px;
+ }
+
+ .one-line-description {
+ color: var(--main-keyword-color);
+ display: inline;
+ margin-left: 0;
+
+ &::before {
+ content: open-quote;
+ }
+
+ &::after {
+ content: close-quote;
+ }
+ }
+}
+
+/* Search results formatting for `search.html`. */
+
+/* A block style. */
+#dartdoc-main-content {
+ .tt-suggestion {
+ color: var(--main-text-color);
+ margin-top: 5px;
+ margin-bottom: 10px;
+ border-style: solid;
+ border-color: lightgrey;
+ border-width: 0.5px;
+ }
+
+ .tt-suggestion-title {
+ display: block;
+ font-weight: 500;
+ margin: 4px 10px 0;
+ }
+
+ .one-line-description {
+ display: block;
+ margin: 2px 10px 3px;
+ }
+
+ /* Do not show a result's container. */
+ .tt-suggestion-container {
+ display: none;
+ }
+}
+
+@media screen and (max-width: 840px) {
+ .typeahead {
+ padding: 17px 17px 17px 33px;
+ width: 240px;
+ height: 17px;
+ border: 1px solid #f5f5f5;
+ background-position: 3%;
+ margin: 10px 10px 10px 9px;
+ }
+
+ header {
+ padding-left: 0;
+ }
+}
+
+@media screen and (max-width: 320px) {
+ #sidenav-left-toggle {
+ margin-right: 10px;
+ margin-left: 20px;
+ }
+
+ .self-name {
+ margin-right: 10px;
+ }
+}
+
+::placeholder {
+ filter: brightness(0.85);
+}
+
+.search-body {
+ border: 1px solid #7f7f7f;
+ max-width: 400px;
+ box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
+}
+
+/* Note that the generated HTML for pub packages may have `section` tags
+ transformed into `div` tags, so we have two selectors here. */
+section#setter, div#setter {
+ border-top: 1px solid #ddd;
+ padding-top: 36px;
+}
+
+li.inherited a {
+ opacity: 0.65;
+ font-style: italic;
+}
+
+#instance-methods,
+#instance-properties,
+#operators {
+ dt.inherited {
+ .name {
+ font-weight: 400;
+ font-style: italic;
+ }
+
+ .signature {
+ font-weight: 400;
+ }
+ }
+}
+
+/* github alert styles */
+
+.markdown-alert {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ padding: 1.25rem;
+
+ >:last-child {
+ margin-bottom: 0;
+ }
+
+ &.markdown-alert-title {
+ display: flex;
+ align-items: center;
+ gap: 0.4rem;
+ margin-bottom: 0.5rem;
+
+ font-weight: bold;
+ -webkit-font-smoothing: antialiased;
+
+ &:before {
+ font: 24px / 1 'Material Symbols Outlined';
+ }
+ }
+
+ &.markdown-alert-note {
+ background-color: var(--alert-info);
+
+ .markdown-alert-title:before {
+ content: 'info';
+ }
+ }
+
+ &.markdown-alert-tip {
+ background-color: var(--alert-tip);
+
+ .markdown-alert-title:before {
+ content: 'lightbulb';
+ }
+ }
+
+ &.markdown-alert-important {
+ background-color: var(--alert-important);
+
+ .markdown-alert-title:before {
+ content: 'feedback';
+ }
+ }
+
+ &.markdown-alert-warning {
+ background-color: var(--alert-warning);
+
+ .markdown-alert-title:before {
+ content: 'warning';
+ }
+ }
+
+ &.markdown-alert-caution {
+ background-color: var(--alert-error);
+
+ .markdown-alert-title:before {
+ content: 'report';
+ }
+ }
+}
+
+@media print {
+ .subnav, .sidebar {
+ display: none;
+ }
+
+ a[href]:after {
+ content: "" !important;
+ }
+}