Switch from SASS variables to CSS variables

* Switch from SASS variables to CSS variables for most styling
  These are the simple cases, and the more complex ones will be covered by future commits. I’ve also replaced $fooZ ± 1 with the appropriate variable to avoid a runtime `calc()`.

* Eliminate the `$style` variable 🔥
  I’ve added a `--absolute` variable that’s `white` in dark mode and `black` in regular mode.

* Remove `$inputFocusBorder` 🔥

* Switch the Prism styles to CSS variables

* Convert `$mediumScreen` to a mixin

* 🔥 `$selectionText`

* Eliminate the final uses of SCSS variables
  I’ve dropped the 95% opacity on the background of the method source code overlay in RDoc since the difference isn’t noticeable but it makes implementation a lot easier.

* Misc fixes

* Extract the common variables from the two themes to a new file

* Remove illegal usages of CSS variables in SCSS functions
  This flattens out the buttons on the settings page which makes the styles simpler (and more modern-looking IMO) and removes the box-shadow on the button, which was completely invisible to me.

* Fix usages of SCSS functions in CSS variables

* Use `html._theme-*` selectors

* Eliminate `application-dark.css`; switch themes by toggling classes
  This also means that the Application Cache doesn’t have to get updated when toggling themes, and a new CSS file that’s nearly the same doesn’t need to be downloaded.
pull/885/merge
Jed Fox 7 years ago committed by Thibaut Courouble
parent 2ad46626de
commit a30fcf9d9a

@ -24,12 +24,10 @@ class app.views.SettingsPage extends app.View
'Preferences' 'Preferences'
toggleDark: (enable) -> toggleDark: (enable) ->
css = $('link[rel="stylesheet"][data-alt]') html = document.documentElement
alt = css.getAttribute('data-alt') html.classList.toggle('_theme-default')
css.setAttribute('data-alt', css.getAttribute('href')) html.classList.toggle('_theme-dark')
css.setAttribute('href', alt)
app.settings.set('dark', !!enable) app.settings.set('dark', !!enable)
app.appCache?.updateInBackground()
return return
toggleLayout: (layout, enable) -> toggleLayout: (layout, enable) ->

@ -1,108 +0,0 @@
//= depend_on docs-1.png
//= depend_on docs-1@2x.png
//= depend_on docs-2.png
//= depend_on docs-2@2x.png
/*!
* Copyright 2013-2018 Thibaut Courouble and other contributors
*
* This source code is licensed under the terms of the Mozilla
* Public License, v. 2.0, a copy of which may be obtained at:
* http://mozilla.org/MPL/2.0/
*/
@import 'global/variables-dark',
'global/mixins',
'global/icons',
'global/classes',
'global/base';
@import 'components/app',
'components/header',
'components/notif',
'components/sidebar',
'components/settings',
'components/content',
'components/page',
'components/fail',
'components/path',
'components/notice',
'components/prism',
'components/mobile';
@import 'pages/simple',
'pages/angular',
'pages/angularjs',
'pages/apache',
'pages/async',
'pages/bash',
'pages/bootstrap',
'pages/c',
'pages/cakephp',
'pages/clojure',
'pages/codeception',
'pages/coffeescript',
'pages/cordova',
'pages/crystal',
'pages/d',
'pages/d3',
'pages/dart',
'pages/dojo',
'pages/drupal',
'pages/elixir',
'pages/ember',
'pages/erlang',
'pages/express',
'pages/git',
'pages/github',
'pages/go',
'pages/graphite',
'pages/haskell',
'pages/jekyll',
'pages/jquery',
'pages/julia',
'pages/knockout',
'pages/kotlin',
'pages/laravel',
'pages/liquid',
'pages/love',
'pages/lua',
'pages/mdn',
'pages/meteor',
'pages/modernizr',
'pages/moment',
'pages/nginx',
'pages/node',
'pages/npm',
'pages/openjdk',
'pages/perl',
'pages/phalcon',
'pages/phaser',
'pages/php',
'pages/phpunit',
'pages/postgres',
'pages/pug',
'pages/python',
'pages/qt',
'pages/ramda',
'pages/rdoc',
'pages/react_native',
'pages/redis',
'pages/rethinkdb',
'pages/rfc',
'pages/rubydoc',
'pages/rust',
'pages/sinon',
'pages/socketio',
'pages/sphinx',
'pages/sphinx_simple',
'pages/sqlite',
'pages/support_tables',
'pages/tcl_tk',
'pages/tensorflow',
'pages/terraform',
'pages/underscore',
'pages/vue',
'pages/webpack',
'pages/yard',
'pages/yii';

@ -11,7 +11,9 @@
* http://mozilla.org/MPL/2.0/ * http://mozilla.org/MPL/2.0/
*/ */
@import 'global/variables', @import 'global/variables-light',
'global/variables-dark',
'global/variables',
'global/mixins', 'global/mixins',
'global/icons', 'global/icons',
'global/classes', 'global/classes',

@ -1,6 +1,6 @@
html._booting { background: $contentBackground; } html._booting { background: var(--contentBackground); }
body._max-width { background: none; } body._max-width { background: none; }
html._booting body._max-width { background: $documentBackground; } html._booting body._max-width { background: var(--documentBackground); }
._app { ._app {
position: relative; position: relative;
@ -15,8 +15,8 @@ html._booting body._max-width { background: $documentBackground; }
._max-width & { ._max-width & {
margin: 0 auto; margin: 0 auto;
max-width: $maxWidth; max-width: var(--maxWidth);
background: $contentBackground; background: var(--contentBackground);
box-shadow: 1px 0 $headerBorder, -1px 0 $headerBorder; box-shadow: 1px 0 var(--headerBorder), -1px 0 var(--headerBorder);
} }
} }

@ -4,13 +4,13 @@
._container { ._container {
position: relative; position: relative;
z-index: $contentZ; z-index: var(--contentZ);
height: 100%; height: 100%;
margin-left: $sidebarWidth; margin-left: var(--sidebarWidth);
pointer-events: none; pointer-events: none;
@extend %border-box; @extend %border-box;
@media #{$mediumScreen} { margin-left: $sidebarMediumWidth; } @include mobile { margin-left: var(--sidebarMediumWidth); }
._sidebar-hidden & { margin-left: 0; } ._sidebar-hidden & { margin-left: 0; }
body:not(._native-scrollbars) & { -webkit-margin-end: -1px; } body:not(._native-scrollbars) & { -webkit-margin-end: -1px; }
@ -30,7 +30,7 @@
._sidebar-hidden &:before { ._sidebar-hidden &:before {
content: ''; content: '';
display: block; display: block;
margin-top: $headerHeight; margin-top: var(--headerHeight);
} }
._overlay-scrollbars & { padding-left: .625rem; } ._overlay-scrollbars & { padding-left: .625rem; }
@ -54,7 +54,7 @@
font-size: 4rem; font-size: 4rem;
font-weight: 300; font-weight: 300;
letter-spacing: -.125rem; letter-spacing: -.125rem;
color: $loadingText; color: var(--loadingText);
text-align: center; text-align: center;
cursor: default; cursor: default;
} }
@ -68,7 +68,7 @@
// //
._splash-title { ._splash-title {
color: $splashText; color: var(--splashText);
@extend %loading, %user-select-none; @extend %loading, %user-select-none;
} }
@ -88,7 +88,7 @@
min-height: calc(100vh - 2.375rem); min-height: calc(100vh - 2.375rem);
._sidebar-hidden & { ._sidebar-hidden & {
min-height: calc(100vh - 2.375rem - #{$headerHeight}); min-height: calc(100vh - 2.375rem - var(--headerHeight));
} }
} }
@ -140,12 +140,12 @@
._error-text { ._error-text {
margin: 0 0 1rem; margin: 0 0 1rem;
color: $textColorLight; color: var(--textColorLight);
} }
._error-links { ._error-links {
font-size: 1rem; font-size: 1rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
._error-link { padding: 0 .5rem; } ._error-link { padding: 0 .5rem; }
@ -167,7 +167,7 @@
height: 1px; height: 1px;
margin-top: .25rem; margin-top: .25rem;
margin-left: 1rem; margin-left: 1rem;
background: $boxBorderLight; background: var(--boxBorderLight);
} }
} }
@ -197,7 +197,7 @@
._toc-title { ._toc-title {
margin: 0 0 .5rem; margin: 0 0 .5rem;
font-size: inherit; font-size: inherit;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
._toc-list { ._toc-list {
@ -252,7 +252,7 @@
._docs-size { ._docs-size {
text-align: right; text-align: right;
> small { color: $textColorLight; } > small { color: var(--textColorLight); }
} }
._docs-tools { ._docs-tools {
@ -285,7 +285,7 @@
padding: 0 .75rem; padding: 0 .75rem;
} }
._btn-link:not(._show) { display: none; } ._btn-link:not(._show) { display: none; }
._btn-link._show ~ ._btn-link._show { border-left: 1px solid $boxBorder; } ._btn-link._show ~ ._btn-link._show { border-left: 1px solid var(--boxBorder); }
} }
// //
@ -297,7 +297,7 @@
position: relative; position: relative;
padding-left: 10em; padding-left: 10em;
font-size: .8125rem; font-size: .8125rem;
color: $textColorLight; color: var(--textColorLight);
+ ._news-row { margin-top: 1em; } + ._news-row { margin-top: 1em; }
} }
@ -305,7 +305,7 @@
._news-title { ._news-title {
display: block; display: block;
font-size: .875rem; font-size: .875rem;
color: $textColor; color: var(--textColor);
} }
._news-date { ._news-date {
@ -372,12 +372,12 @@
// Utilities // Utilities
// //
._bold { font-weight: $boldFontWeight; } ._bold { font-weight: var(--boldFontWeight); }
._note { @extend %note; } ._note { @extend %note; }
._note-green { @extend %note-green; } ._note-green { @extend %note-green; }
._label { @extend %label; } ._label { @extend %label; }
._code { @extend %code; } ._code { @extend %code; }
._highlight { background: $highlightBackground !important; } ._highlight { background: var(--highlightBackground) !important; }
._table { width: 100%; } ._table { width: 100%; }
._mobile ._table { overflow-x: auto; } ._mobile ._table { overflow-x: auto; }
@ -396,12 +396,9 @@
pre:hover > & { display: block; } pre:hover > & { display: block; }
&:hover { opacity: 1; } &:hover { opacity: 1; }
> svg { @extend %svg-icon; } > svg {
@extend %svg-icon;
@if $style == 'dark' { fill: var(--absolute);
> svg { fill: white; }
} @else {
> svg { fill: black; }
} }
&._pre-clip-success > svg, &._pre-clip-success > svg,
@ -419,15 +416,13 @@
line-height: normal; line-height: normal;
white-space: nowrap; white-space: nowrap;
padding: .375rem .675rem; padding: .375rem .675rem;
background-image: linear-gradient(lighten($boxBackground, 4%), darken($boxBackground, 2%)); background-color: var(--boxBackground);
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-radius: 3px; border-radius: 3px;
box-shadow: 0 1px rgba($boxBorder, .08);
cursor: pointer; cursor: pointer;
&:active { &:active {
background-color: $boxBackground; box-shadow: inset 0 1px 1px rgba(black, .05), inset 0 1px 4px var(--boxBorder);
box-shadow: inset 0 1px 1px rgba(black, .05), inset 0 1px 4px $boxBorder;
} }
} }
@ -447,18 +442,18 @@
._btn-link { ._btn-link {
line-height: inherit; line-height: inherit;
color: $linkColor; color: var(--linkColor);
text-decoration: $linkTextDecoration; text-decoration: var(--linkTextDecoration);
&:hover { &:hover {
color: $linkColorHover; color: var(--linkColorHover);
text-decoration: underline; text-decoration: underline;
} }
} }
._reset-btn, ._reset-btn,
._reset-btn:hover { ._reset-btn:hover {
color: $textColorRed; color: var(--textColorRed);
} }
._github-btn { ._github-btn {

@ -23,7 +23,7 @@
._fail-title { ._fail-title {
margin: 0 0 1rem; margin: 0 0 1rem;
font-size: 1rem; font-size: 1rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
._fail-text, ._fail-list { ._fail-text, ._fail-list {

@ -4,20 +4,20 @@
._header { ._header {
position: absolute; position: absolute;
z-index: $headerZ; z-index: var(--headerZ);
top: 0; top: 0;
left: 0; left: 0;
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
width: $sidebarWidth; width: var(--sidebarWidth);
height: $headerHeight; height: var(--headerHeight);
background: $headerBackground; background: var(--headerBackground);
border-bottom: 1px solid $headerBorder; border-bottom: 1px solid var(--headerBorder);
border-right: 1px solid $headerBorder; border-right: 1px solid var(--headerBorder);
@extend %border-box; @extend %border-box;
@extend %user-select-none; @extend %user-select-none;
@media #{$mediumScreen} { width: $sidebarMediumWidth; } @include mobile { width: var(--sidebarMediumWidth); }
} }
._header-left { ._header-left {
@ -35,7 +35,7 @@
flex: 0 0 auto; flex: 0 0 auto;
width: 2.25rem; width: 2.25rem;
height: 100%; height: 100%;
color: $textColorLight; color: var(--textColorLight);
text-align: center; text-align: center;
&[hidden] { display: none; } &[hidden] { display: none; }
@ -67,8 +67,8 @@
word-wrap: normal; word-wrap: normal;
overflow-wrap: normal; overflow-wrap: normal;
font-size: .875rem; font-size: .875rem;
background: $contentBackground; background: var(--contentBackground);
border: 1px solid $headerBorder; border: 1px solid var(--headerBorder);
border-radius: 3px; border-radius: 3px;
box-shadow: -1px 1px 1px rgba(black, .05); box-shadow: -1px 1px 1px rgba(black, .05);
transition: all 0ms cubic-bezier(0.23, 1, 0.32, 1) 1ms; transition: all 0ms cubic-bezier(0.23, 1, 0.32, 1) 1ms;
@ -98,10 +98,10 @@
margin: 0; margin: 0;
line-height: 1.5rem; line-height: 1.5rem;
font-size: 1rem; font-size: 1rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
letter-spacing: -.5px; letter-spacing: -.5px;
background: $sidebarBackground; background: var(--sidebarBackground);
border-bottom: 1px solid $sidebarBorder; border-bottom: 1px solid var(--sidebarBorder);
border-radius: 2px 2px 0 0; border-radius: 2px 2px 0 0;
} }
@ -109,7 +109,7 @@
._menu-title-link:hover { ._menu-title-link:hover {
display: block; display: block;
padding: .5rem 1rem; padding: .5rem 1rem;
color: $focusText; color: var(--focusText);
text-decoration: none; text-decoration: none;
} }
@ -121,9 +121,9 @@
text-decoration: none; text-decoration: none;
&:hover { &:hover {
color: $focusText; color: var(--focusText);
text-decoration: none; text-decoration: none;
background: $sidebarBackground; background: var(--sidebarBackground);
} }
&:last-child { border-radius: 0 0 2px 2px; } &:last-child { border-radius: 0 0 2px 2px; }
@ -151,11 +151,7 @@
opacity: .42; opacity: .42;
@extend %svg-icon; @extend %svg-icon;
@if $style == 'dark' { fill: var(--absolute);
fill: white;
} @else {
fill: black;
}
} }
} }
@ -166,21 +162,19 @@
height: 100%; height: 100%;
padding: 0 .75rem 1px 1.75rem; padding: 0 .75rem 1px 1.75rem;
font-size: .875rem; font-size: .875rem;
background: $contentBackground; background: var(--contentBackground);
border: 1px solid; border: 1px solid;
border-color: darken($headerBorder, 2%); border-color: var(--searchBorder);
border-radius: 3px; border-radius: 3px;
&:focus { &:focus {
outline: 0; outline: 0;
@if $inputFocusBorder { border-color: var(--inputFocusBorder);
border-color: $inputFocusBorder; box-shadow: 0 0 1px var(--inputFocusBorder);
box-shadow: 0 0 1px $inputFocusBorder;
}
} }
&[disabled] { &[disabled] {
background: $sidebarBackground; background: var(--sidebarBackground);
cursor: not-allowed; cursor: not-allowed;
} }
} }
@ -202,13 +196,9 @@
top: .5rem; top: .5rem;
left: .375rem; left: .375rem;
@extend %svg-icon; @extend %svg-icon;
fill: var(--absolute);
} }
@if $style == 'dark' {
> svg { fill: white; }
} @else {
> svg { fill: black; }
}
._search-active > & { display: block; } ._search-active > & { display: block; }
} }
@ -222,8 +212,8 @@
line-height: 1.25rem; line-height: 1.25rem;
max-width: 50%; max-width: 50%;
font-size: .8125rem; font-size: .8125rem;
color: $textColorLight; color: var(--textColorLight);
background: darken($headerBackground, 5%); background: var(--searchTagBackground);
border-radius: 2px; border-radius: 2px;
@extend %truncate-text; @extend %truncate-text;
} }

@ -4,7 +4,7 @@
._mobile { ._mobile {
font-size: 100%; font-size: 100%;
background: $contentBackground; background: var(--contentBackground);
._hide-on-mobile { display: none; } ._hide-on-mobile { display: none; }
@ -18,7 +18,7 @@
._container { ._container {
margin: 0; margin: 0;
padding-top: $headerHeight; padding-top: var(--headerHeight);
} }
._content { ._content {

@ -1,15 +1,15 @@
._notice { ._notice {
position: absolute; position: absolute;
z-index: $noticeZ; z-index: var(--noticeZ);
bottom: 0; bottom: 0;
left: $sidebarWidth; left: var(--sidebarWidth);
right: 0; right: 0;
height: 2.5rem; height: 2.5rem;
padding: 0 1.25rem; padding: 0 1.25rem;
background: $noticeBackground; background: var(--noticeBackground);
box-shadow: inset 0 1px $noticeBorder; box-shadow: inset 0 1px var(--noticeBorder);
@media #{$mediumScreen} { left: $sidebarMediumWidth; } @include mobile { left: var(--sidebarMediumWidth); }
._sidebar-hidden & { left: 0; } ._sidebar-hidden & { left: 0; }

@ -7,9 +7,9 @@
max-width: 90%; max-width: 90%;
padding: .625rem 1rem; padding: .625rem 1rem;
font-size: .75rem; font-size: .75rem;
color: $notifColor; color: var(--notifColor);
background: $notifBackground; background: var(--notifBackground);
border: $notifBorder; border: var(--notifBorder);
border-radius: .25rem; border-radius: .25rem;
transition: opacity .2s; transition: opacity .2s;
opacity: 0; opacity: 0;
@ -30,7 +30,7 @@
._notif-info { ._notif-info {
float: right; float: right;
color: $notifColorLight; color: var(--notifColorLight);
} }
._notif-link, ._notif-link,
@ -69,13 +69,13 @@
&::-webkit-scrollbar { width: 10px !important; } &::-webkit-scrollbar { width: 10px !important; }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
background: $notifBackground !important; background: var(--notifBackground) !important;
border: 0 !important; border: 0 !important;
border-radius: 5px !important; border-radius: 5px !important;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border: 3px solid $notifBackground !important; border: 3px solid var(--notifBackground) !important;
&:hover, &:active { border-width: 2px !important; } &:hover, &:active { border-width: 2px !important; }
} }
@ -90,7 +90,7 @@
> ._news-row { > ._news-row {
line-height: 1.125rem; line-height: 1.125rem;
font-size: .6875rem; font-size: .6875rem;
color: $notifColorLight; color: var(--notifColorLight);
margin-bottom: .25rem; margin-bottom: .25rem;
+ ._news-row { margin-top: .625rem; } + ._news-row { margin-top: .625rem; }
@ -107,7 +107,7 @@
._news-date { ._news-date {
float: right; float: right;
margin-left: 1rem; margin-left: 1rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
code { code {
@ -128,9 +128,9 @@
} }
._notif-tip { ._notif-tip {
color: $textColor; color: var(--textColor);
background: $tipBackground; background: var(--tipBackground);
border: $tipBorder; border: var(--tipBorder);
._notif-info { color: $textColorLight; } ._notif-info { color: var(--textColorLight); }
} }

@ -23,7 +23,7 @@
max-width: 100%; max-width: 100%;
margin-bottom: 1em; margin-bottom: 1em;
padding: 1px; padding: 1px;
border: 1px dotted $boxBorder; border: 1px dotted var(--boxBorder);
border-radius: 3px; border-radius: 3px;
@extend %border-box; @extend %border-box;
} }
@ -50,7 +50,7 @@
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
padding: 0 .5rem; padding: 0 .5rem;
background: $contentBackground; background: var(--contentBackground);
@extend %internal-link; @extend %internal-link;
& + & { margin-left: .75rem; } & + & { margin-left: .75rem; }
@ -66,7 +66,7 @@
clear: both; clear: both;
margin: 2rem 0 1.5rem; margin: 2rem 0 1.5rem;
font-size: .75rem; font-size: .75rem;
color: $textColorLight; color: var(--textColorLight);
text-align: center; text-align: center;
-webkit-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased;
@ -78,7 +78,7 @@
display: inline-block; display: inline-block;
margin: 0; margin: 0;
padding: .25rem .75rem; padding: .25rem .75rem;
background: $labelBackground; background: var(--labelBackground);
border-radius: 3px; border-radius: 3px;
} }

@ -1,17 +1,17 @@
._path { ._path {
position: absolute; position: absolute;
z-index: $noticeZ - 1; z-index: var(--headerZ);
bottom: 0; bottom: 0;
left: $sidebarWidth; left: var(--sidebarWidth);
right: 0; right: 0;
height: 2rem; height: 2rem;
line-height: 2rem; line-height: 2rem;
padding: 0 .375rem; padding: 0 .375rem;
font-size: .875rem; font-size: .875rem;
background: $pathBackground; background: var(--pathBackground);
box-shadow: inset 0 1px $pathBorder; box-shadow: inset 0 1px var(--pathBorder);
@media #{$mediumScreen} { left: $sidebarMediumWidth; } @include mobile { left: var(--sidebarMediumWidth); }
._sidebar-hidden & { left: 0; } ._sidebar-hidden & { left: 0; }
@ -24,7 +24,7 @@
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
padding: 0 .375rem; padding: 0 .375rem;
color: $textColor; color: var(--textColor);
text-decoration: none; text-decoration: none;
&:first-child:before { &:first-child:before {

@ -1,9 +1,26 @@
html {
--prismValue: #905;
--prismText: #5e8e01;
--prismOperator: #a67f59;
--prismKeyword: #0070a3;
--prismFunction: #dd4a68;
--prismVariable: #e90;
}
html.dark {
--prismValue: #eb8160;
--prismText: #ddcf88;
--prismOperator: #b1c676;
--prismKeyword: #91b3ed;
--prismFunction: #c79e6b;
--prismVariable: #e9c062;
}
.token.comment, .token.comment,
.token.prolog, .token.prolog,
.token.doctype, .token.doctype,
.token.cdata, .token.cdata,
.token.punctuation { .token.punctuation {
color: $textColorLight; color: var(--textColorLight);
} }
.namespace { .namespace {
@ -17,11 +34,7 @@
.token.constant, .token.constant,
.token.symbol, .token.symbol,
.token.deleted { .token.deleted {
@if $style == 'dark' { color: var(--prismValue);
color: #eb8160;
} @else {
color: #905;
}
} }
.token.selector, .token.selector,
@ -30,11 +43,7 @@
.token.char, .token.char,
.token.builtin, .token.builtin,
.token.inserted { .token.inserted {
@if $style == 'dark' { color: var(--prismText);
color: #ddcf88;
} @else {
color: #5e8e01;
}
} }
.token.operator, .token.operator,
@ -42,44 +51,28 @@
.token.url, .token.url,
.language-css .token.string, .language-css .token.string,
.style .token.string { .style .token.string {
@if $style == 'dark' { color: var(--prismOperator);
color: #b1c676;
} @else {
color: #a67f59;
}
} }
.token.atrule, .token.atrule,
.token.attr-value, .token.attr-value,
.token.keyword { .token.keyword {
@if $style == 'dark' { color: var(--prismKeyword);
color: #91b3ed;
} @else {
color: #0070a3;
}
} }
.token.function { .token.function {
@if $style == 'dark' { color: var(--prismFunction);
color: #c79e6b;
} @else {
color: #dd4a68;
}
} }
.token.regex, .token.regex,
.token.important, .token.important,
.token.variable { .token.variable {
@if $style == 'dark' { color: var(--prismVariable);
color: #e9c062;
} @else {
color: #e90;
}
} }
.token.important, .token.important,
.token.bold { .token.bold {
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
.token.italic { .token.italic {

@ -7,15 +7,15 @@
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0; bottom: 0;
z-index: $headerZ; z-index: var(--headerZ);
&._in { display: block; } &._in { display: block; }
> ._header { justify-content: space-between; } > ._header { justify-content: space-between; }
&._dirty > ._header { &._dirty > ._header {
background: $noteGreenBackground; background: var(--noteGreenBackground);
border-color: $noteGreenBorder; border-color: var(--noteGreenBorder);
} }
} }
@ -37,7 +37,7 @@
padding-right: .5rem; padding-right: .5rem;
line-height: inherit; line-height: inherit;
font-size: inherit; font-size: inherit;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
text-align: right; text-align: right;
@extend %border-box; @extend %border-box;
} }
@ -52,7 +52,7 @@
> small { > small {
display: block; display: block;
color: $textColorLight; color: var(--textColorLight);
margin-left: 1.75rem; margin-left: 1.75rem;
} }
@ -62,7 +62,7 @@
} }
} }
@media (max-width: $maxWidth) { @media (max-width: 80rem) {
._setting-max-width { display: none; } ._setting-max-width { display: none; }
} }
@ -80,7 +80,7 @@
line-height: 1.5rem; line-height: 1.5rem;
padding: 0 .75rem; padding: 0 .75rem;
font-size: .875rem; font-size: .875rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
color: inherit; color: inherit;
text-align: left; text-align: left;
cursor: pointer; cursor: pointer;
@ -119,12 +119,12 @@
position: relative; position: relative;
vertical-align: top; vertical-align: top;
padding: 0 .75rem; padding: 0 .75rem;
line-height: $headerHeight; line-height: var(--headerHeight);
color: $textColorLight; color: var(--textColorLight);
&.active { &.active {
color: $textColor; color: var(--textColor);
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
box-shadow: inset 0 -2px $linkColor; box-shadow: inset 0 -2px var(--linkColor);
} }
} }

@ -4,14 +4,14 @@
._sidebar { ._sidebar {
position: absolute; position: absolute;
z-index: $sidebarZ; z-index: var(--sidebarZ);
top: 0; top: 0;
bottom: 0; bottom: 0;
left: 0; left: 0;
overflow-x: hidden; overflow-x: hidden;
overflow-y: scroll; overflow-y: scroll;
padding-top: $headerHeight; padding-top: var(--headerHeight);
background: $sidebarBackground; background: var(--sidebarBackground);
background-clip: content-box; background-clip: content-box;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
-ms-overflow-style: none; // IE 10 doesn't support pointer-events -ms-overflow-style: none; // IE 10 doesn't support pointer-events
@ -22,13 +22,13 @@
._overlay-scrollbars & { ._overlay-scrollbars & {
padding-top: 0; padding-top: 0;
top: $headerHeight; top: var(--headerHeight);
} }
body:not(._native-scrollbars) & { body:not(._native-scrollbars) & {
&::-webkit-scrollbar { width: 10px; } &::-webkit-scrollbar { width: 10px; }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
background: $contentBackground; background: var(--contentBackground);
border: 0; border: 0;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
@ -52,10 +52,10 @@
._resizer { ._resizer {
position: absolute; position: absolute;
z-index: $sidebarZ + 1; z-index: var(--headerZ);
top: $headerHeight; top: var(--headerHeight);
bottom: $headerHeight; bottom: var(--headerHeight);
left: $sidebarWidth; left: var(--sidebarWidth);
margin-left: -2px; margin-left: -2px;
width: 3px; width: 3px;
cursor: col-resize; cursor: col-resize;
@ -72,11 +72,11 @@
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style: none; list-style: none;
width: $sidebarWidth; width: var(--sidebarWidth);
box-shadow: inset -1px 0 $sidebarBorder; box-shadow: inset -1px 0 var(--sidebarBorder);
@extend %border-box; @extend %border-box;
@media #{$mediumScreen} { width: $sidebarMediumWidth; } @include mobile { width: var(--sidebarMediumWidth); }
._sidebar > & { min-height: 100%; } ._sidebar > & { min-height: 100%; }
@ -89,7 +89,7 @@
padding: 0 .75rem 0 2.125rem; padding: 0 .75rem 0 2.125rem;
line-height: 2rem; line-height: 2rem;
font-size: .75rem; font-size: .75rem;
color: $textColorLight; color: var(--textColorLight);
text-transform: uppercase; text-transform: uppercase;
cursor: default; cursor: default;
} }
@ -110,8 +110,8 @@
line-height: 1.5rem; line-height: 1.5rem;
font-size: .875rem; font-size: .875rem;
cursor: default; cursor: default;
background: $sidebarBackground; background: var(--sidebarBackground);
box-shadow: inset -1px 0 $sidebarBorder; box-shadow: inset -1px 0 var(--sidebarBorder);
@extend %truncate-text; @extend %truncate-text;
&, &:hover { &, &:hover {
@ -123,16 +123,16 @@
&.focus:hover, &.focus:hover,
&.active, &.active,
&.active:hover { &.active:hover {
color: $focusText; color: var(--focusText);
background: $focusBackground; background: var(--focusBackground);
box-shadow: inset -1px 0 $focusBorder; box-shadow: inset -1px 0 var(--focusBorder);
} }
&.active, &.active,
&.active:hover { &.active:hover {
color: $selectionText; color: var(--selectionText);
background: $selectionBackground; background: var(--selectionBackground);
box-shadow: inset -1px 0 $selectionBorder; box-shadow: inset -1px 0 var(--selectionBorder);
} }
&:before { &:before {
@ -160,7 +160,7 @@
} }
._list-count { ._list-count {
color: $textColorLighter; color: var(--textColorLighter);
pointer-events: none; pointer-events: none;
._list-disabled:hover > & { display: none; } ._list-disabled:hover > & { display: none; }
@ -168,7 +168,7 @@
._list-enable { ._list-enable {
display: none; display: none;
color: $linkColor; color: var(--linkColor);
cursor: pointer; cursor: pointer;
&:hover { text-decoration: underline; } &:hover { text-decoration: underline; }
@ -188,7 +188,7 @@
._list-disabled { ._list-disabled {
@extend %_list-dir; @extend %_list-dir;
&, &:hover { color: $textColorLight; } &, &:hover { color: var(--textColorLight); }
&:before { opacity: .7; } &:before { opacity: .7; }
} }
@ -200,11 +200,9 @@
width: 1rem; width: 1rem;
height: 1rem; height: 1rem;
cursor: pointer; cursor: pointer;
fill: black; fill: var(--absolute);
opacity: .4; opacity: .4;
@if $style == 'dark' { fill: white; }
&:hover { opacity: .65; } &:hover { opacity: .65; }
._list-rdir > & { ._list-rdir > & {
@ -239,11 +237,11 @@
// //
._list-pagelink { ._list-pagelink {
color: $linkColor; color: var(--linkColor);
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: $linkColorHover; color: var(--linkColorHover);
text-decoration: underline; text-decoration: underline;
} }
} }
@ -275,9 +273,9 @@
left: .75rem; left: .75rem;
width: .75rem; width: .75rem;
height: 1px; height: 1px;
background: rgba($selectionText, .9); background: var(--transparentSelectionText);
box-shadow: 0 -3px rgba($selectionText, .9), // top line box-shadow: 0 -3px var(--transparentSelectionText), // top line
0 3px rgba($selectionText, .9); // bottom line 0 3px var(--transparentSelectionText); // bottom line
} }
} }
@ -289,7 +287,7 @@
padding: .5rem .75rem; padding: .5rem .75rem;
line-height: 1.25rem; line-height: 1.25rem;
font-size: .8125rem; font-size: .8125rem;
color: $textColorLight; color: var(--textColorLight);
& + & { padding-top: 0; } & + & { padding-top: 0; }
} }
@ -303,9 +301,9 @@
._list-hover.clone { ._list-hover.clone {
position: fixed; position: fixed;
overflow: visible; overflow: visible;
z-index: $hoverZ; z-index: var(--hoverZ);
left: 0; left: 0;
min-width: $sidebarWidth; min-width: var(--sidebarWidth);
padding: .25rem .75rem; padding: .25rem .75rem;
pointer-events: none; pointer-events: none;
-webkit-font-smoothing: subpixel-antialiased; -webkit-font-smoothing: subpixel-antialiased;
@ -313,7 +311,7 @@
transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0);
@extend %border-box; @extend %border-box;
@media #{$mediumScreen} { min-width: $sidebarMediumWidth; } @include mobile { min-width: var(--sidebarMediumWidth); }
> ._list-text { display: inline; } > ._list-text { display: inline; }
@ -346,10 +344,10 @@
padding: .5rem .75rem .25rem .75rem; padding: .5rem .75rem .25rem .75rem;
line-height: 1.5rem; line-height: 1.5rem;
font-size: .75rem; font-size: .75rem;
font-weight: $bolderFontWeight; font-weight: var(--bolderFontWeight);
color: $textColorLight; color: var(--textColorLight);
text-transform: uppercase; text-transform: uppercase;
background: linear-gradient(to bottom, $sidebarBackground, $sidebarBackground 75%, rgba($sidebarBackground, 0)); background: linear-gradient(to bottom, var(--sidebarBackground), var(--sidebarBackground) 75%, var(--transparentSidebarBackground));
cursor: default; cursor: default;
} }

@ -1,9 +1,9 @@
html { html {
height: 100%; height: 100%;
font-size: 100%; font-size: 100%;
background: $documentBackground; background: var(--documentBackground);
@media #{$mediumScreen} { font-size: 93.75%; } @include mobile { font-size: 93.75%; }
@include print { background: none; } @include print { background: none; }
@import 'global/print'; @import 'global/print';
@ -15,12 +15,12 @@ body {
overflow: auto; overflow: auto;
font-size: 1em; font-size: 1em;
font-weight: normal; font-weight: normal;
font-family: $baseFont; font-family: var(--baseFont);
line-height: 1.7; line-height: 1.7;
color: $textColor; color: var(--textColor);
word-wrap: break-word; word-wrap: break-word;
overflow-wrap: break-word; overflow-wrap: break-word;
background: $contentBackground; background: var(--contentBackground);
touch-action: manipulation; touch-action: manipulation;
-webkit-tap-highlight-color: rgba(black, 0); -webkit-tap-highlight-color: rgba(black, 0);
-webkit-touch-callout: none; -webkit-touch-callout: none;
@ -29,11 +29,11 @@ body {
} }
a { a {
color: $linkColor; color: var(--linkColor);
text-decoration: $linkTextDecoration; text-decoration: var(--linkTextDecoration);
&:hover { &:hover {
color: $linkColorHover; color: var(--linkColorHover);
text-decoration: underline; text-decoration: underline;
} }
} }
@ -47,7 +47,7 @@ img {
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
margin: 1.5em 0 1em; margin: 1.5em 0 1em;
line-height: 1.3; line-height: 1.3;
font-weight: $bolderFontWeight; font-weight: var(--bolderFontWeight);
} }
h1 { font-size: 1.5em; } h1 { font-size: 1.5em; }
@ -59,7 +59,7 @@ h5, h6 { font-size: 1em; }
p { margin: 0 0 1em; } p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; } p:last-child { margin-bottom: 0; }
b, strong { font-weight: $boldFontWeight; } b, strong { font-weight: var(--boldFontWeight); }
small { font-size: .9em; } small { font-size: .9em; }
@ -79,7 +79,7 @@ li > ul, li > ol, dd > ul, dd > ol { margin: .5em 0; }
li > p { margin-bottom: .25em; } li > p { margin-bottom: .25em; }
dl { margin: 1.5em 0; } dl { margin: 1.5em 0; }
dt { font-weight: $boldFontWeight; } dt { font-weight: var(--boldFontWeight); }
dd { dd {
margin: .375em; margin: .375em;
padding-left: 1em; padding-left: 1em;
@ -91,15 +91,15 @@ dfn, var { font-style: normal; }
abbr, acronym, dfn { abbr, acronym, dfn {
cursor: help; cursor: help;
border-bottom: 1px dotted $textColor; border-bottom: 1px dotted var(--textColor);
} }
pre, code, samp, %pre, %code { pre, code, samp, %pre, %code {
font-family: $monoFont; font-family: var(--monoFont);
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
font-size: .9em; font-size: .9em;
color: $textColor; color: var(--textColor);
white-space: pre-wrap; white-space: pre-wrap;
direction: ltr; direction: ltr;
-moz-tab-size: 2; -moz-tab-size: 2;
@ -121,14 +121,14 @@ a > code { color: inherit; }
table { table {
margin: 1.5em 0; margin: 1.5em 0;
background: none; background: none;
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-collapse: separate; border-collapse: separate;
border-spacing: 0; border-spacing: 0;
border-radius: 3px; border-radius: 3px;
} }
caption { caption {
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
padding: 0 .7em .3em; padding: 0 .7em .3em;
} }
@ -142,15 +142,15 @@ th, td {
} }
th { th {
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
border: 0; border: 0;
border-bottom: 1px solid $boxBorder; border-bottom: 1px solid var(--boxBorder);
border-radius: 0; border-radius: 0;
@extend %heading-box; @extend %heading-box;
&:empty { background: none; } &:empty { background: none; }
+ th, + td { border-left: 1px solid $boxBorder; } + th, + td { border-left: 1px solid var(--boxBorder); }
tr:first-child > &:first-child { border-top-left-radius: 3px; } tr:first-child > &:first-child { border-top-left-radius: 3px; }
tr:first-child > &:last-child { border-top-right-radius: 3px; } tr:first-child > &:last-child { border-top-right-radius: 3px; }
@ -161,10 +161,10 @@ th {
} }
td { td {
background: $contentBackground; background: var(--contentBackground);
border-bottom: 1px solid $boxBorderLight; border-bottom: 1px solid var(--boxBorderLight);
+ td { border-left: 1px solid $boxBorderLight; } + td { border-left: 1px solid var(--boxBorderLight); }
tr:last-child > & { border-bottom: 0; } tr:last-child > & { border-bottom: 0; }
> pre:only-child, > p:only-child, > ul:only-child, > ol:only-child { > pre:only-child, > p:only-child, > ul:only-child, > ol:only-child {
@ -190,7 +190,7 @@ input, button {
margin: 0; margin: 0;
font-family: inherit; font-family: inherit;
font-size: 100%; font-size: 100%;
color: $textColor; color: var(--textColor);
line-height: normal; line-height: normal;
@extend %border-box; @extend %border-box;
} }
@ -219,7 +219,7 @@ button:focus {
} }
img, iframe { img, iframe {
background: $externalsBackground; background: var(--externalsBackground);
} }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-cancel-button,
@ -234,9 +234,9 @@ input[type="search"]::-webkit-search-decoration {
border: 0 !important; border: 0 !important;
} }
::-webkit-input-placeholder { color: $textColorLighter; } ::-webkit-input-placeholder { color: var(--textColorLighter); }
::-moz-placeholder { color: $textColorLighter; opacity: 1; } ::-moz-placeholder { color: var(--textColorLighter); opacity: 1; }
:-ms-input-placeholder { color: $textColorLighter; } :-ms-input-placeholder { color: var(--textColorLighter); }
body:not(._native-scrollbars) { body:not(._native-scrollbars) {
*::-webkit-scrollbar { -webkit-appearance: none; } *::-webkit-scrollbar { -webkit-appearance: none; }
@ -247,12 +247,12 @@ body:not(._native-scrollbars) {
*::-webkit-scrollbar-corner { display: none; } *::-webkit-scrollbar-corner { display: none; }
*::-webkit-scrollbar-track { *::-webkit-scrollbar-track {
background: $contentBackground; background: var(--contentBackground);
border: 1px solid $contentBackground; border: 1px solid var(--contentBackground);
&:hover { &:hover {
background: $sidebarBackground; background: var(--sidebarBackground);
border-color: $sidebarBorder; border-color: var(--sidebarBorder);
} }
&:vertical { border-width: 0 0 0 1px; } &:vertical { border-width: 0 0 0 1px; }
@ -270,14 +270,14 @@ body:not(._native-scrollbars) {
*::-webkit-scrollbar-thumb { *::-webkit-scrollbar-thumb {
min-height: 2rem; min-height: 2rem;
background: $scrollbarColor; background: var(--scrollbarColor);
background-clip: padding-box; background-clip: padding-box;
border: 5px solid rgba(black, 0); border: 5px solid rgba(black, 0);
border-radius: 10px; border-radius: 10px;
&:hover, &:hover,
&:active { &:active {
background-color: $scrollbarColorHover; background-color: var(--scrollbarColorHover);
border-width: 4px; border-width: 4px;
} }
} }

@ -36,15 +36,15 @@
// //
%box { %box {
background: $boxBackground; background: var(--boxBackground);
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-radius: 3px; border-radius: 3px;
} }
%heading-box { %heading-box {
color: $boxHeaderColor; color: var(--boxHeaderColor);
background: $boxHeaderBackground; background: var(--boxHeaderBackground);
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-radius: 3px; border-radius: 3px;
} }
@ -82,15 +82,15 @@
%note { %note {
margin: 1.5rem 0; margin: 1.5rem 0;
padding: .5rem .875rem; padding: .5rem .875rem;
background: $noteBackground; background: var(--noteBackground);
border: 1px solid $noteBorder; border: 1px solid var(--noteBorder);
border-radius: 3px; border-radius: 3px;
} }
%label { %label {
margin: 0 1px; margin: 0 1px;
padding: 1px 4px 2px; padding: 1px 4px 2px;
background: $labelBackground; background: var(--labelBackground);
border-radius: 3px; border-radius: 3px;
} }
@ -102,35 +102,35 @@
padding-right: .5em; padding-right: .5em;
overflow: hidden; overflow: hidden;
font-size: inherit; font-size: inherit;
color: $boxHeaderColor; color: var(--boxHeaderColor);
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-radius: 2px; border-radius: 2px;
@extend %label; @extend %label;
} }
%label-yellow { %label-yellow {
background: $noteBackground; background: var(--noteBackground);
border-color: $noteBorder; border-color: var(--noteBorder);
} }
%note-green, %label-green { %note-green, %label-green {
background: $noteGreenBackground; background: var(--noteGreenBackground);
border-color: $noteGreenBorder; border-color: var(--noteGreenBorder);
} }
%note-blue, %label-blue { %note-blue, %label-blue {
background: $noteBlueBackground; background: var(--noteBlueBackground);
border-color: $noteBlueBorder; border-color: var(--noteBlueBorder);
} }
%note-orange, %label-orange { %note-orange, %label-orange {
background: $noteOrangeBackground; background: var(--noteOrangeBackground);
border-color: $noteOrangeBorder; border-color: var(--noteOrangeBorder);
} }
%note-red, %label-red { %note-red, %label-red {
background: $noteRedBackground; background: var(--noteRedBackground);
border-color: $noteRedBorder; border-color: var(--noteRedBorder);
} }
// //
@ -149,12 +149,11 @@
pointer-events: none; pointer-events: none;
// <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15,15H2V6h2.595c0,0,0.689-0.896,2.17-2H1C0.447,4,0,4.449,0,5v11c0,0.553,0.447,1,1,1h15c0.553,0,1-0.447,1-1v-3.746 l-2,1.645V15z M13.361,8.05v3.551L20,6.4l-6.639-4.999v3.131C5.3,4.532,5.3,12.5,5.3,12.5C7.582,8.752,8.986,8.05,13.361,8.05z"/></svg> // <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15,15H2V6h2.595c0,0,0.689-0.896,2.17-2H1C0.447,4,0,4.449,0,5v11c0,0.553,0.447,1,1,1h15c0.553,0,1-0.447,1-1v-3.746 l-2,1.645V15z M13.361,8.05v3.551L20,6.4l-6.639-4.999v3.131C5.3,4.532,5.3,12.5,5.3,12.5C7.582,8.752,8.986,8.05,13.361,8.05z"/></svg>
@if $style == 'dark' { background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzMzNzdjMCIgZD0iTTE1LDE1SDJWNmgyLjU5NWMwLDAsMC42ODktMC44OTYsMi4xNy0ySDFDMC40NDcsNCwwLDQuNDQ5LDAsNXYxMWMwLDAuNTUzLDAuNDQ3LDEsMSwxaDE1YzAuNTUzLDAsMS0wLjQ0NywxLTF2LTMuNzQ2IGwtMiwxLjY0NVYxNXogTTEzLjM2MSw4LjA1djMuNTUxTDIwLDYuNGwtNi42MzktNC45OTl2My4xMzFDNS4zLDQuNTMyLDUuMywxMi41LDUuMywxMi41QzcuNTgyLDguNzUyLDguOTg2LDguMDUsMTMuMzYxLDguMDV6Ii8+PC9zdmc+);
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2NiZDBkMCIgZD0iTTE1LDE1SDJWNmgyLjU5NWMwLDAsMC42ODktMC44OTYsMi4xNy0ySDFDMC40NDcsNCwwLDQuNDQ5LDAsNXYxMWMwLDAuNTUzLDAuNDQ3LDEsMSwxaDE1YzAuNTUzLDAsMS0wLjQ0NywxLTF2LTMuNzQ2IGwtMiwxLjY0NVYxNXogTTEzLjM2MSw4LjA1djMuNTUxTDIwLDYuNGwtNi42MzktNC45OTl2My4xMzFDNS4zLDQuNTMyLDUuMywxMi41LDUuMywxMi41QzcuNTgyLDguNzUyLDguOTg2LDguMDUsMTMuMzYxLDguMDV6Ii8+PC9zdmc+);
} @else {
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzMzNzdjMCIgZD0iTTE1LDE1SDJWNmgyLjU5NWMwLDAsMC42ODktMC44OTYsMi4xNy0ySDFDMC40NDcsNCwwLDQuNDQ5LDAsNXYxMWMwLDAuNTUzLDAuNDQ3LDEsMSwxaDE1YzAuNTUzLDAsMS0wLjQ0NywxLTF2LTMuNzQ2IGwtMiwxLjY0NVYxNXogTTEzLjM2MSw4LjA1djMuNTUxTDIwLDYuNGwtNi42MzktNC45OTl2My4xMzFDNS4zLDQuNTMyLDUuMywxMi41LDUuMywxMi41QzcuNTgyLDguNzUyLDguOTg2LDguMDUsMTMuMzYxLDguMDV6Ii8+PC9zdmc+);
}
} }
} }
html.dark %external-link {
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2NiZDBkMCIgZD0iTTE1LDE1SDJWNmgyLjU5NWMwLDAsMC42ODktMC44OTYsMi4xNy0ySDFDMC40NDcsNCwwLDQuNDQ5LDAsNXYxMWMwLDAuNTUzLDAuNDQ3LDEsMSwxaDE1YzAuNTUzLDAsMS0wLjQ0NywxLTF2LTMuNzQ2IGwtMiwxLjY0NVYxNXogTTEzLjM2MSw4LjA1djMuNTUxTDIwLDYuNGwtNi42MzktNC45OTl2My4xMzFDNS4zLDQuNTMyLDUuMywxMi41LDUuMywxMi41QzcuNTgyLDguNzUyLDguOTg2LDguMDUsMTMuMzYxLDguMDV6Ii8+PC9zdmc+);
}
%internal-link:after { content: none !important; } %internal-link:after { content: none !important; }

@ -23,8 +23,8 @@
%doc-icon-2 { background-image: image-url('docs-2@2x.png') !important; } %doc-icon-2 { background-image: image-url('docs-2@2x.png') !important; }
} }
%darkIconFix { html._theme-dark {
@if $style == 'dark' { %darkIconFix {
filter: invert(100%) grayscale(100%); filter: invert(100%) grayscale(100%);
-webkit-filter: invert(100%) grayscale(100%); -webkit-filter: invert(100%) grayscale(100%);
} }

@ -7,3 +7,9 @@
@content; @content;
} }
} }
@mixin mobile {
@media (max-width: 800px) {
@content;
}
}

@ -25,14 +25,14 @@
._attribution-p { ._attribution-p {
background: none; background: none;
border: 2px solid $boxBorder; border: 2px solid var(--boxBorder);
} }
._attribution:last-child:after { ._attribution:last-child:after {
content: 'Exported from DevDocs \2014 https://devdocs.io'; content: 'Exported from DevDocs \2014 https://devdocs.io';
display: block; display: block;
margin-top: 1rem; margin-top: 1rem;
font-weight: $bolderFontWeight; font-weight: var(--bolderFontWeight);
} }
._attribution { ._attribution {

@ -1,94 +1,76 @@
$baseFont: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif; html._theme-dark {
$monoFont: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; --absolute: white;
$boldFontWeight: 500;
$bolderFontWeight: 600;
$style: 'dark'; --documentBackground: #222;
--contentBackground: #33373a;
$maxWidth: 80rem; --textColor: #cbd0d0;
$headerHeight: 3rem; --textColorLight: #9da5ad;
$sidebarWidth: 20rem; --textColorLighter: #77787a;
$sidebarMediumWidth: 16rem;
$documentBackground: #222; --externalsBackground: #fff;
$contentBackground: #33373a;
$externalsBackground: #fff; --inputFocusBorder: transparent;
$textColor: #cbd0d0; --focusBackground: #3f4042;
$textColorLight: #9da5ad; --focusBorder: #000;
$textColorLighter: #77787a; --focusText: #f7f2f2;
$textColorRed: #f44336;
$inputFocusBorder: false; --loadingText: #5d6164;
$focusBackground: #3f4042; --selectionBackground: #007acc;
$focusBorder: #000; --selectionBorder: #000;
$focusText: #f7f2f2;
$loadingText: #5d6164; --highlightBackground: #64675f;
$splashText: $loadingText;
$selectionBackground: #007acc; --linkColor: var(--textColor);
$selectionBorder: #000; --linkColorHover: white;
$selectionText: #fff; --linkTextDecoration: underline;
$highlightBackground: #64675f; --headerBackground: #1c1c1c;
--headerBorder: #000;
--searchTagBackground: #{darken(#1c1c1c, 5%)};
--searchBorder: #{darken(#000, 2%)};
$linkColor: $textColor; --sidebarBackground: #24282a;
$linkColorHover: white; --transparentSidebarBackground: #{rgba(#24282a, 0)};
$linkTextDecoration: underline; --sidebarBorder: #000;
$headerBackground: #1c1c1c; --scrollbarColor: #6c6c6f;
$headerBorder: #000; --scrollbarColorHover: #949697;
$sidebarBackground: #24282a; --pathBackground: var(--headerBackground);
$sidebarBorder: #000; --pathBorder: var(--headerBorder);
$scrollbarColor: #6c6c6f; --noticeBackground: var(--sidebarBackground);
$scrollbarColorHover: #949697; --noticeBorder: var(--sidebarBorder);
$pathBackground: $headerBackground; --boxBackground: var(--sidebarBackground);
$pathBorder: $headerBorder; --boxBorder: var(--headerBorder);
--boxBorderLight: var(--headerBorder);
--boxHeaderColor: #dbe4e4;
--boxHeaderBackground: var(--sidebarBackground);
$noticeBackground: $sidebarBackground; --noteBackground: #45474b;
$noticeBorder: $sidebarBorder; --noteBorder: #000;
$boxBackground: $sidebarBackground; --noteGreenBackground: #284a2a;
$boxBorder: $headerBorder; --noteGreenBorder: #000;
$boxBorderLight: $headerBorder;
$boxHeaderColor: #dbe4e4;
$boxHeaderBackground: $sidebarBackground;
$noteBackground: #45474b; --noteBlueBackground: #2a4151;
$noteBorder: #000; --noteBlueBorder: #000;
$noteGreenBackground: #284a2a; --noteOrangeBackground: #563322;
$noteGreenBorder: #000; --noteOrangeBorder: #000;
$noteBlueBackground: #2a4151; --noteRedBackground: #603033;
$noteBlueBorder: #000; --noteRedBorder: #000;
$noteOrangeBackground: #563322; --labelBackground: var(--boxBackground);
$noteOrangeBorder: #000;
$noteRedBackground: #603033; --notifBackground: #{rgba(#555, .95)};
$noteRedBorder: #000; --notifBorder: 1px solid #000;
$labelBackground: $boxBackground; --tipBackground: var(--notifBackground);
--tipBorder: var(--notifBorder);
$notifBackground: rgba(#555, .95); }
$notifBorder: 1px solid #000;
$notifColor: #fff;
$notifColorLight: #ccc;
$tipBackground: $notifBackground;
$tipBorder: $notifBorder;
$mediumScreen: '(max-width: 800px)';
$contentZ: 1;
$sidebarZ: 2;
$headerZ: 3;
$noticeZ: 4;
$hoverZ: 5;

@ -0,0 +1,76 @@
html._theme-default {
--absolute: black;
--documentBackground: #f3f3f3;
--contentBackground: #fff;
--textColor: #333;
--textColorLight: #666;
--textColorLighter: #888;
--externalsBackground: #fff;
--inputFocusBorder: #35b5f4;
--focusBackground: #e5e5e5;
--focusBorder: #d4d4d4;
--focusText: #000;
--loadingText: #ccc;
--selectionBackground: #398df0;
--selectionBorder: #196fc2;
--highlightBackground: #fffdcd;
--linkColor: #3377c0;
--linkColorHover: #2f6cb6;
--linkTextDecoration: none;
--headerBackground: #eee;
--headerBorder: #d7d7d7;
--searchTagBackground: #{darken(#eee, 5%)};
--searchBorder: #{darken(#d7d7d7, 2%)};
--sidebarBackground: #f9f9f9;
--transparentSidebarBackground: #{rgba(#f9f9f9, 0)};
--sidebarBorder: #e1e1e1;
--scrollbarColor: #ccc;
--scrollbarColorHover: #999;
--pathBackground: var(--sidebarBackground);
--pathBorder: var(--sidebarBorder);
--noticeBackground: #faf9e2;
--noticeBorder: #e2e2c1;
--boxBackground: #fafafa;
--boxBorder: #d8d8d8;
--boxBorderLight: #e5e5e5;
--boxHeaderColor: var(--textColor);
--boxHeaderBackground: #f5f5f5;
--noteBackground: #f8f8dd;
--noteBorder: #d3d952;
--noteGreenBackground: #e7f8e1;
--noteGreenBorder: #89da70;
--noteBlueBackground: #d4f3fd;
--noteBlueBorder: #94bbeb;
--noteOrangeBackground: #fbe6d1;
--noteOrangeBorder: #ec8b01;
--noteRedBackground: #fed5d3;
--noteRedBorder: #dc7874;
--labelBackground: #f4f4f4;
--notifBackground: #{rgba(#333, .85)};
--notifBorder: none;
--tipBackground: #{rgba(#fffdcd, .95)};
--tipBorder: 1px solid #e7dca9;
}

@ -1,94 +1,31 @@
$baseFont: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif; html {
$monoFont: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; --baseFont: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif;
$boldFontWeight: 500; --monoFont: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
$bolderFontWeight: 600; --boldFontWeight: 500;
--bolderFontWeight: 600;
$style: 'light'; --textColorRed: #f44336;
$maxWidth: 80rem; --splashText: var(--loadingText);
$headerHeight: 3rem;
$sidebarWidth: 20rem;
$sidebarMediumWidth: 16rem;
$documentBackground: #f3f3f3; --selectionText: #fff;
$contentBackground: #fff; --transparentSelectionText: rgba(255, 255, 255, 0.9);
$externalsBackground: $contentBackground; --notifColor: #fff;
--notifColorLight: #ccc;
$textColor: #333; --maxWidth: 80rem;
$textColorLight: #666; --headerHeight: 3rem;
$textColorLighter: #888; --sidebarWidth: 20rem;
$textColorRed: #f44336; --sidebarMediumWidth: 16rem;
$inputFocusBorder: #35b5f4; --focusBackground: #e5e5e5;
--focusBorder: #d4d4d4;
--focusText: #000;
$focusBackground: #e5e5e5; --contentZ: 1;
$focusBorder: #d4d4d4; --sidebarZ: 2;
$focusText: #000; --headerZ: 3;
--noticeZ: 4;
$loadingText: #ccc; --hoverZ: 5;
$splashText: #ccc; }
$selectionBackground: #398df0;
$selectionBorder: #196fc2;
$selectionText: #fff;
$highlightBackground: #fffdcd;
$linkColor: #3377c0;
$linkColorHover: #2f6cb6;
$linkTextDecoration: none;
$headerBackground: #eee;
$headerBorder: #d7d7d7;
$sidebarBackground: #f9f9f9;
$sidebarBorder: #e1e1e1;
$scrollbarColor: #ccc;
$scrollbarColorHover: #999;
$pathBackground: $sidebarBackground;
$pathBorder: $sidebarBorder;
$noticeBackground: #faf9e2;
$noticeBorder: #e2e2c1;
$boxBackground: #fafafa;
$boxBorder: #d8d8d8;
$boxBorderLight: #e5e5e5;
$boxHeaderColor: $textColor;
$boxHeaderBackground: #f5f5f5;
$noteBackground: #f8f8dd;
$noteBorder: #d3d952;
$noteGreenBackground: #e7f8e1;
$noteGreenBorder: #89da70;
$noteBlueBackground: #d4f3fd;
$noteBlueBorder: #94bbeb;
$noteOrangeBackground: #fbe6d1;
$noteOrangeBorder: #ec8b01;
$noteRedBackground: #fed5d3;
$noteRedBorder: #dc7874;
$labelBackground: #f4f4f4;
$notifBackground: rgba(#333, .85);
$notifBorder: none;
$notifColor: #fff;
$notifColorLight: #ccc;
$tipBackground: rgba(#fffdcd, .95);
$tipBorder: 1px solid #e7dca9;
$mediumScreen: '(max-width: 800px)';
$contentZ: 1;
$sidebarZ: 2;
$headerZ: 3;
$noticeZ: 4;
$hoverZ: 5;

@ -8,7 +8,7 @@
.nav-index-section { .nav-index-section {
margin: 1.5em 0 1em -2em; margin: 1.5em 0 1em -2em;
list-style: none; list-style: none;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
text-transform: capitalize; text-transform: capitalize;
} }

@ -3,13 +3,13 @@
h3 > .type-signature { h3 > .type-signature {
float: right; float: right;
color: $textColorLight; color: var(--textColorLight);
} }
h3 > .signature-attributes { h3 > .signature-attributes {
font-size: .75rem; font-size: .75rem;
font-weight: normal; font-weight: normal;
font-style: italic; font-style: italic;
color: $textColorLighter; color: var(--textColorLighter);
} }
} }

@ -4,7 +4,7 @@
h4 > code, h5 > code, strong > code { @extend %label; } h4 > code, h5 > code, strong > code { @extend %label; }
h2 > small { h2 > small {
color: $textColorLight; color: var(--textColorLight);
float: right; float: right;
} }

@ -23,7 +23,7 @@
.t-spar { // language/switch, language/for, etc. .t-spar { // language/switch, language/for, etc.
font-style: italic; font-style: italic;
color: $textColorLight; color: var(--textColorLight);
} }
.t-sdsc-nopad dl, .t-sdsc-nopad dd { margin: 0; } .t-sdsc-nopad dl, .t-sdsc-nopad dd { margin: 0; }
@ -57,7 +57,7 @@
margin: 1rem 0; margin: 1rem 0;
padding: .375rem; padding: .375rem;
font-size: .75rem; font-size: .75rem;
border: 1px solid $boxBorder; border: 1px solid var(--boxBorder);
border-radius: 2px; border-radius: 2px;
} }

@ -5,6 +5,6 @@
.type { .type {
float: right; float: right;
font-size: .9em; font-size: .9em;
color: $textColorLight; color: var(--textColorLight);
} }
} }

@ -2,10 +2,10 @@
h2 { @extend %block-heading; } h2 { @extend %block-heading; }
h3, .d_decl { @extend %block-label, %label-blue; } h3, .d_decl { @extend %block-label, %label-blue; }
.d_decl { @extend %code; } .d_decl { @extend %code; }
.d_decl > small { color: $textColorLight; } .d_decl > small { color: var(--textColorLight); }
.d_decl > strong { font-weight: $bolderFontWeight; } .d_decl > strong { font-weight: var(--bolderFontWeight); }
p > code, li > code, td > code, dd > code { @extend %label; } p > code, li > code, td > code, dd > code { @extend %label; }
span.red { color: $textColorRed; } span.red { color: var(--textColorRed); }
} }

@ -1,5 +1,5 @@
._dojo { ._dojo {
@extend %simple; @extend %simple;
.jsdoc-inheritance { color: $textColorLight; } .jsdoc-inheritance { color: var(--textColorLight); }
} }

@ -5,7 +5,7 @@
h3 > .access { h3 > .access {
float: right; float: right;
color: $textColorLight; color: var(--textColorLight);
font-weight: normal; font-weight: normal;
} }
@ -15,6 +15,6 @@
} }
p.github-link { p.github-link {
color: $textColorLight; color: var(--textColorLight);
} }
} }

@ -5,5 +5,5 @@
code.code { @extend %label; } code.code { @extend %label; }
.note { @extend %note; } .note { @extend %note; }
.warning { @extend %note, %note-red; } .warning { @extend %note, %note-red; }
.note .label, .warning .label { font-weight: $boldFontWeight; } .note .label, .warning .label { font-weight: var(--boldFontWeight); }
} }

@ -32,7 +32,7 @@
.toc-list { .toc-list {
margin-top: 0; margin-top: 0;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
> li + li { margin-top: 1em; } > li + li { margin-top: 1em; }
> li > ul { font-weight: normal; } > li > ul { font-weight: normal; }
@ -48,7 +48,7 @@
.returns, .returns,
.option-type { .option-type {
float: right; float: right;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
margin-left: 1em; margin-left: 1em;
} }

@ -12,6 +12,6 @@
.smwtable { width: 100%; } .smwtable { width: 100%; }
.smwtable td:nth-last-child(2), .smwtable td:last-child { width: 2.5em; } .smwtable td:nth-last-child(2), .smwtable td:last-child { width: 2.5em; }
.cell-green { background: $noteGreenBackground; } .cell-green { background: var(--noteGreenBackground); }
.cell-red { background: $noteRedBackground; } .cell-red { background: var(--noteRedBackground); }
} }

@ -7,7 +7,7 @@
> span { > span {
display: block; display: block;
font-size: 1rem; font-size: 1rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
ul, ol { ul, ol {
@ -42,7 +42,7 @@
> .note { > .note {
em { em {
font-style: normal; font-style: normal;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
> ul { margin: 1em 0; } > ul { margin: 1em 0; }
@ -93,7 +93,7 @@
dt > strong > code, // HTML element attribute dt > strong > code, // HTML element attribute
dl > dt > code { // CSS property value, Javascript function argument dl > dt > code { // CSS property value, Javascript function argument
font-family: inherit; font-family: inherit;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
font-size: inherit; font-size: inherit;
} }

@ -9,10 +9,10 @@
dt > code { @extend %label; } dt > code { @extend %label; }
.api-heading { overflow: hidden; } .api-heading { overflow: hidden; }
.api-heading > code { font-weight: $boldFontWeight; } .api-heading > code { font-weight: var(--boldFontWeight); }
.locus, .src-code { float: right; } .locus, .src-code { float: right; }
.locus, .type, .src-code { margin-left: .5em; } .locus, .type, .src-code { margin-left: .5em; }
h2 .subtext-api { margin-top: .25rem; } h2 .subtext-api { margin-top: .25rem; }
.locus, .subtext-api, .subtext-api > code { font-size: .75rem; } .locus, .subtext-api, .subtext-api > code { font-size: .75rem; }
.locus, .type { color: $textColorLight; } .locus, .type { color: var(--textColorLight); }
} }

@ -8,7 +8,7 @@
.faint.heading { .faint.heading {
font-size: .9em; font-size: .9em;
color: $textColorLight; color: var(--textColorLight);
} }
.youtube-video iframe { width: 420px; height: 315px; } .youtube-video iframe { width: 420px; height: 315px; }

@ -3,6 +3,6 @@
h3 > small { h3 > small {
float: right; float: right;
color: $textColorLight; color: var(--textColorLight);
} }
} }

@ -13,7 +13,7 @@
.verinfo { .verinfo {
float: right; float: right;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
.classsynopsis, .classsynopsis,
@ -21,7 +21,7 @@
.description > .methodsynopsis, .description > .methodsynopsis,
.description > .fieldsynopsis { @extend %note, %note-blue; } .description > .fieldsynopsis { @extend %note, %note-blue; }
.classsynopsisinfo_comment { color: $textColorLight; } .classsynopsisinfo_comment { color: var(--textColorLight); }
.classsynopsisinfo_comment, .classsynopsisinfo_comment,
.classsynopsis > .constructorsynopsis, .classsynopsis > .constructorsynopsis,

@ -16,7 +16,7 @@
} }
p > code { @extend %label; } p > code { @extend %label; }
p.c2 { font-weight: $boldFontWeight; } p.c2 { font-weight: var(--boldFontWeight); }
.navfooter > table { width: 100%; } .navfooter > table { width: 100%; }
td[align=center] { text-align: center; } td[align=center] { text-align: center; }

@ -6,7 +6,7 @@
.method-description > h2, h3, h4, h5, h6 { font-size: 1em; } .method-description > h2, h3, h4, h5, h6 { font-size: 1em; }
.method-heading { .method-heading {
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
@extend %block-label, %label-blue; @extend %block-label, %label-blue;
+ .method-heading { margin-top: -.5em; } + .method-heading { margin-top: -.5em; }
@ -22,7 +22,7 @@
a.method-click-advice { a.method-click-advice {
float: right; float: right;
font-size: .75rem; font-size: .75rem;
color: $linkColor; color: var(--linkColor);
cursor: pointer; cursor: pointer;
@extend %user-select-none; @extend %user-select-none;
@ -42,8 +42,8 @@
top: 0; top: 0;
left: -1em; left: -1em;
right: 0; right: 0;
background: rgba($contentBackground, .95); background: var(--contentBackground);
box-shadow: 0 1em 1em 1em $contentBackground; box-shadow: 0 1em 1em 1em var(--contentBackground);
> pre { margin: 0; } > pre { margin: 0; }
} }

@ -2,7 +2,7 @@
@extend %simple; @extend %simple;
.deprecated { @extend %note, %note-orange; } .deprecated { @extend %note, %note-orange; }
.deprecatedTitle { font-weight: $boldFontWeight; } .deprecatedTitle { font-weight: var(--boldFontWeight); }
span.platform { float: right; } span.platform { float: right; }
span.propType, span.platform { font-weight: normal; } span.propType, span.platform { font-weight: normal; }

@ -14,7 +14,7 @@
.args { .args {
font-size: .75rem; font-size: .75rem;
color: $textColorLight; color: var(--textColorLight);
} }
// Others // Others
@ -35,7 +35,7 @@
> .prompt { > .prompt {
float: left; float: left;
margin-right: .5em; margin-right: .5em;
color: $textColorLight; color: var(--textColorLight);
} }
> code { > code {

@ -10,6 +10,6 @@
> h1, > h2, > h3, > h4, > h5 { > h1, > h2, > h3, > h4, > h5 {
margin: 0; margin: 0;
font-family: $baseFont; font-family: var(--baseFont);
} }
} }

@ -14,7 +14,7 @@
.versionmodified, span.title, .topic-title { .versionmodified, span.title, .topic-title {
display: block; display: block;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
p > code, li > code, dd > code, .docutils > dt > code { @extend %label; } p > code, li > code, dd > code, .docutils > dt > code { @extend %label; }
@ -26,7 +26,7 @@
.admonition-title { .admonition-title {
float: left; float: left;
margin: 0 .5em 0 0; margin: 0 .5em 0 0;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
&:after { content: ':'; } &:after { content: ':'; }
} }

@ -6,7 +6,7 @@
.admonition.tip { @extend %note-green; } .admonition.tip { @extend %note-green; }
.admonition-title { .admonition-title {
margin: 0 0 .25rem; margin: 0 0 .25rem;
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
} }
code { @extend %label; } code { @extend %label; }

@ -24,7 +24,7 @@
} }
tr.current { tr.current {
font-weight: $boldFontWeight; font-weight: var(--boldFontWeight);
font-size: 1rem; font-size: 1rem;
} }

@ -1,5 +1,5 @@
._yard { ._yard {
@extend %simple; @extend %simple;
.tag_title { font-weight: $boldFontWeight; } .tag_title { font-weight: var(--boldFontWeight); }
} }

@ -3,6 +3,6 @@
.detail-header-tag, .detailHeaderTag { .detail-header-tag, .detailHeaderTag {
float: right; float: right;
color: $textColorLight; color: var(--textColorLight);
} }
} }

@ -196,7 +196,6 @@ class App < Sinatra::Application
@@manifest_asset_urls ||= [ @@manifest_asset_urls ||= [
javascript_path('application', asset_host: false), javascript_path('application', asset_host: false),
stylesheet_path('application'), stylesheet_path('application'),
stylesheet_path('application-dark'),
image_path('docs-1.png'), image_path('docs-1.png'),
image_path('docs-1@2x.png'), image_path('docs-1@2x.png'),
image_path('docs-2.png'), image_path('docs-2.png'),
@ -205,21 +204,6 @@ class App < Sinatra::Application
] ]
end end
def main_stylesheet_path
stylesheet_paths[dark_theme? ? :dark : :default]
end
def alternate_stylesheet_path
stylesheet_paths[dark_theme? ? :default : :dark]
end
def stylesheet_paths
@@stylesheet_paths ||= {
default: stylesheet_path('application'),
dark: stylesheet_path('application-dark')
}
end
def app_size def app_size
@app_size ||= memoized_cookies['size'].nil? ? '20rem' : "#{memoized_cookies['size']}px" @app_size ||= memoized_cookies['size'].nil? ? '20rem' : "#{memoized_cookies['size']}px"
end end

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html<%= ' manifest="/manifest.appcache"' if App.production? %> prefix="og: http://ogp.me/ns#" lang="en" class="_booting"> <html<%= ' manifest="/manifest.appcache"' if App.production? %> prefix="og: http://ogp.me/ns#" lang="en" class="_booting _theme-<%= app_theme %>">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no">
@ -30,7 +30,7 @@
<link rel="apple-touch-icon" sizes="152x152" href="<%= App.cdn_origin %>/images/apple-icon-152.png"> <link rel="apple-touch-icon" sizes="152x152" href="<%= App.cdn_origin %>/images/apple-icon-152.png">
<link rel="apple-touch-icon" sizes="160x160" href="<%= App.cdn_origin %>/images/apple-icon-160.png"> <link rel="apple-touch-icon" sizes="160x160" href="<%= App.cdn_origin %>/images/apple-icon-160.png">
<link rel="mask-icon" href="<%= App.cdn_origin %>/images/webkit-mask-icon.svg" color="#398df0"> <link rel="mask-icon" href="<%= App.cdn_origin %>/images/webkit-mask-icon.svg" color="#398df0">
<link rel="stylesheet" href="<%= main_stylesheet_path %>" data-alt="<%= alternate_stylesheet_path %>"> <%= stylesheet_tag 'application' %>
</head> </head>
<body<%= %( class="#{app_layout}") if app_layout %>> <body<%= %( class="#{app_layout}") if app_layout %>>
<noscript class="_fail">DevDocs requires JavaScript to run.</noscript> <noscript class="_fail">DevDocs requires JavaScript to run.</noscript>

@ -1,5 +1,5 @@
CACHE MANIFEST CACHE MANIFEST
# <%= app_theme %> <%= app_size %> <%= app_layout %> # <%= app_size %> <%= app_layout %>
CACHE: CACHE:
/ /

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en" class="_booting"> <html lang="en" class="_booting _theme-<%= app_theme %>">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
@ -11,7 +11,7 @@
<link rel="manifest" href="/manifest.json"> <link rel="manifest" href="/manifest.json">
<link rel="icon" type="image/x-icon" href="<%= App.cdn_origin %>/favicon.ico"> <link rel="icon" type="image/x-icon" href="<%= App.cdn_origin %>/favicon.ico">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Search DevDocs"> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Search DevDocs">
<link rel="stylesheet" href="<%= main_stylesheet_path %>" data-alt="<%= alternate_stylesheet_path %>"> <%= stylesheet_tag 'application' %>
</head> </head>
<body<%= %( class="#{app_layout}") if app_layout %> data-doc="<%= CGI::escape_html @doc.to_json %>"> <body<%= %( class="#{app_layout}") if app_layout %> data-doc="<%= CGI::escape_html @doc.to_json %>">
<noscript class="_fail">DevDocs requires JavaScript to run.</noscript> <noscript class="_fail">DevDocs requires JavaScript to run.</noscript>

Loading…
Cancel
Save