From 5ccca11a448ea315a6e64453e630694ba2c20e66 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Thu, 21 Nov 2024 20:59:05 +0100 Subject: Rename "rsrc" directories to "static" Stop using "rsrc" as name for the directories which contain static files and rename them to "static". This affects the global static directory and the static sub-directories in the theme directories. If you've stored your own files in the old global "rsrc" directory, you must move them to the new "static" directory. --- theme/admin/static/css/bright.css | 972 +++++++++++++++++++++++++ theme/admin/static/css/bright.scss | 69 ++ theme/admin/static/css/dark.css | 972 +++++++++++++++++++++++++ theme/admin/static/css/dark.scss | 69 ++ theme/admin/static/css/import/_fontello.scss | 116 +++ theme/admin/static/css/import/_fonts.scss | 33 + theme/admin/static/css/import/_responsive.scss | 92 +++ theme/admin/static/css/import/_styles.scss | 795 ++++++++++++++++++++ theme/admin/static/css/import/_variables.scss | 31 + theme/admin/static/font/fontello.json | 508 +++++++++++++ theme/admin/static/font/fontello.woff2 | Bin 0 -> 16460 bytes theme/admin/static/font/kadwa-n-400.woff2 | Bin 0 -> 18108 bytes theme/admin/static/font/ruda-n-400.woff2 | Bin 0 -> 9120 bytes theme/admin/static/font/ruda-n-700.woff2 | Bin 0 -> 9116 bytes theme/admin/static/icon-public-domain.svg | 1 + theme/admin/static/img/noise-bright.png | Bin 0 -> 9237 bytes theme/admin/static/img/noise-dark.png | Bin 0 -> 6557 bytes theme/admin/static/main.js | 191 +++++ 18 files changed, 3849 insertions(+) create mode 100644 theme/admin/static/css/bright.css create mode 100644 theme/admin/static/css/bright.scss create mode 100644 theme/admin/static/css/dark.css create mode 100644 theme/admin/static/css/dark.scss create mode 100644 theme/admin/static/css/import/_fontello.scss create mode 100644 theme/admin/static/css/import/_fonts.scss create mode 100644 theme/admin/static/css/import/_responsive.scss create mode 100644 theme/admin/static/css/import/_styles.scss create mode 100644 theme/admin/static/css/import/_variables.scss create mode 100644 theme/admin/static/font/fontello.json create mode 100644 theme/admin/static/font/fontello.woff2 create mode 100644 theme/admin/static/font/kadwa-n-400.woff2 create mode 100644 theme/admin/static/font/ruda-n-400.woff2 create mode 100644 theme/admin/static/font/ruda-n-700.woff2 create mode 100644 theme/admin/static/icon-public-domain.svg create mode 100644 theme/admin/static/img/noise-bright.png create mode 100644 theme/admin/static/img/noise-dark.png create mode 100644 theme/admin/static/main.js (limited to 'theme/admin/static') diff --git a/theme/admin/static/css/bright.css b/theme/admin/static/css/bright.css new file mode 100644 index 0000000..6ca9bae --- /dev/null +++ b/theme/admin/static/css/bright.css @@ -0,0 +1,972 @@ +@charset "UTF-8"; +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content background and border color +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header and navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text colors +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Misc +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Forms +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Information message box +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import stylesheet +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import variables +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Line height +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font families +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Heading font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content widths +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Selection +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::selection { + background: #BBB; + color: #000; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Placeholders +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::placeholder { + color: #444; + opacity: 0.5; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +* { + scrollbar-color: #A1A1A1 #E1E1E1; } + *::-webkit-scrollbar { + width: 0.75rem; } + *::-webkit-scrollbar-track { + background: #E1E1E1; } + *::-webkit-scrollbar-thumb { + background: #A1A1A1; + background-clip: padding-box; + border: 0.15rem solid transparent; } + *::-webkit-scrollbar-thumb:hover { + background: #888888; + background-clip: padding-box; + border: 0.15rem solid transparent; } + *::-webkit-scrollbar-corner { + background: transparent; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Hyperlinks +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +a { + color: #0060A0; + text-decoration: none; } + a:hover { + text-decoration: underline; } + a:focus { + background: #CCC; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Headings +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +h1, h2, h3 { + margin-bottom: 0; } + h1 + p, h2 + p, h3 + p { + margin-top: 0; } + h1 .fa, h2 .fa, h3 .fa { + margin-right: 0.25rem; } + +h1 { + margin-top: 0; + font-size: 0.8rem; } + +h2 { + font-size: 0.7rem; } + +h3 { + font-size: 0.65rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Document +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +html, body { + margin: 0; + padding: 0; } + +html { + font-size: 1.25rem; + color: #333; + background: url("../img/noise-bright.png") #DDD; + -webkit-hyphens: auto; + word-break: break-word; + hyphens: auto; } + +body { + font-family: "Ruda", "sans-serif"; + font-size: 0.7rem; + line-height: 1.2rem; + display: flex; + min-height: 100vh; + flex-direction: column; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main content +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content { + flex: 1; + width: 100%; + background: #FFF; + box-sizing: border-box; + padding: 0.75rem; } + #main-content.wide { + max-width: 90rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Width +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content, .header-content { + max-width: 50rem; + margin: 0 auto; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-header { + font-size: 0.6rem; } + +#header-text { + font-size: 0.8rem; + text-transform: uppercase; } +#header-desc { + line-height: 1rem; } +#header-text, #header-desc { + color: #333; + font-weight: bold; } +#header-logo { + display: block; + max-height: 5rem; + float: left; + margin-right: 0.5rem; } + +.header-line { + padding: 0.25rem 0.75rem; + overflow: hidden; + background: #EEE; } + .header-line + .header-line { + border: 0.05rem solid #AAA; + border-left: none; + border-right: none; } + .header-line.background { + background: #5E819F; + position: sticky; + top: 0; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-footer { + font-size: 0.6rem; + background: #EEE; + border-top: 0.05rem solid #AAA; + padding: 0.5rem 0.75rem; + text-align: center; } + #main-footer ul { + margin: 0; + padding: 0; + list-style: none; } + #main-footer ul li { + display: inline; } + #main-footer ul li .fa { + margin-right: 0.125rem; } + #main-footer ul li:after { + content: " – "; + font-weight: bold; } + #main-footer ul li:last-child:after { + content: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-navi ul { + list-style: none; + margin: 0; + padding: 0; } + #main-navi ul li { + display: inline; } + #main-navi ul li .fa { + margin-right: 0.25rem; } + #main-navi ul li:last-child { + float: right; } + #main-navi ul li:first-child { + float: none; } +#main-navi a { + padding: 0.1rem 0.3rem; + background: #DDD; + border: 0.05rem solid #AAA; + color: inherit; + text-decoration: none; + text-align: center; + display: inline-block; } + #main-navi a:hover, #main-navi a:focus { + text-decoration: none; + background: #CCC; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Site Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#site-navi { + clear: both; + display: flex; + box-sizing: border-box; + justify-content: space-between; + margin-top: 0.75rem; } + #site-navi > div { + display: flex; + align-items: center; + border: 0.05rem solid #AAA; + background: #EEE; } + #site-navi > div > a { + display: block; } + #site-navi .disabled { + pointer-events: none; + color: #AAA; } + #site-navi ol { + list-style: none; + margin: 0; + padding: 0; } + #site-navi ol li { + float: left; + display: inline-block; } + #site-navi ol li + li { + border-left: 0.05rem solid #AAA; } + #site-navi ol li.active a { + background: #CCC; + font-weight: 600; + pointer-events: none; } + #site-navi a { + padding: 0 0.5rem; + text-decoration: none; + color: inherit; + display: inline-block; } + #site-navi a:hover, #site-navi a:focus { + background: #CCC; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Actions +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.actions { + margin: 0 0 0.5rem 0; + padding: 0; + list-style: none; + font-size: 0.6rem; + float: right; + text-align: center; } + .actions .fa { + margin-right: 0.1rem; } + .actions li { + display: inline-block; + font-weight: bold; + background: #EEE; + border: 0.05rem solid #AAA; } + .actions a { + color: inherit; + display: block; + padding: 0 0.25rem; + text-decoration: none; } + +.actions-before { + float: left; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +pre { + margin-bottom: 1rem; + overflow: auto; + -moz-tab-size: 4; + tab-size: 4; + background: #EEE; + padding: 0.5rem; + border: 0.05rem solid #AAA; } + +code, pre { + font-family: "monospace"; } + +code { + color: #008B45; } + +p { + margin-top: 0; } + +img { + border: none; + max-width: 100%; } + +.warning { + color: #B03060; } + +.hidden { + display: none; } + +.no-visual-list { + margin: 0; + padding: 0; + list-style: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Item Element +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.item { + display: flex; + flex-direction: column; + border: 0.05rem solid #AAA; + margin-bottom: 0.75rem; + clear: both; } + .item header { + padding: 0.5rem 0.75rem; + border-bottom: 0.05rem solid #AAA; + position: sticky; + top: 0; } + .item header h2 { + margin-top: 0; } + .item footer { + border-top: 0.05rem solid #AAA; } + .item footer ul { + margin: 0; + padding: 0; + list-style: none; } + .item footer ul li { + display: inline-block; + float: left; } + .item footer ul li:last-child { + float: right; } + .item footer a { + color: inherit; + display: inline-block; + padding: 0.25rem 2rem; } + .item footer a:hover, .item footer a:active { + background: #DDD; } + .item header, .item footer { + background: #EEE; + overflow: hidden; } + .item blockquote { + margin: 0; + padding: 0.75rem; + overflow: hidden; + font-family: inherit; + flex-grow: 1; } + .item blockquote p { + margin-bottom: 0; } + .item-id { + float: right; + color: #444; + font-size: 0.7rem; + font-weight: normal; } + .item-meta { + margin: 0; + padding: 0; + list-style: none; } + .item-meta li { + display: inline-block; } + .item-meta li + li:before { + content: " – "; } + .item-meta li.item-meta-right { + float: right; + font-size: 0.6rem; } + .item-meta li.item-meta-right:before { + content: none; } + .item-image { + float: left; + display: block; + margin-right: 0.75rem; + width: 10rem; + height: 7rem; + object-fit: cover; + background: #EEE; + border: 0.05rem solid #AAA; } + .item-container.grid { + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 1rem; + grid-row-gap: 1rem; + column-gap: 1rem; + row-gap: 1rem; } + .item-container.grid .item { + margin-bottom: 0; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Argument list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.arguments { + list-style: none; + margin: 0; + padding: 0.25rem 0.75rem; + background: #EEE; + font-size: 0.6rem; + text-align: center; + border-top: 0.05rem solid #AAA; } + .arguments li { + display: inline; } + .arguments li > code { + font-family: inherit; + color: #444; } + .arguments li:after { + content: " · "; + font-weight: bold; } + .arguments li:last-child:after { + content: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Grids +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.form-grid { + clear: both; + display: grid; + grid-template-columns: repeat(2, 7.5rem minmax(0, 1fr)); + border-left: 0.05rem solid #AAA; + border-bottom: 0.05rem solid #AAA; } + .form-grid.two-columns { + grid-template-columns: 1fr 2fr; } + .form-grid.no-bottom-border { + border-bottom: none; } + .form-grid > label { + display: flex; + align-items: center; + background: #DDD; } + .form-grid > label .fa { + margin: 0 0.5rem; } + .form-grid-item, + .form-grid > label { + padding: 0.5rem; + border-top: 0.05rem solid #AAA; + border-right: 0.05rem solid #AAA; } + .form-grid-item.first { + grid-column: span 3; } + +.form-border-box { + border: 0.05rem solid #AAA; } + .form-border-box.padding { + padding: 0.5rem; } + .form-border-box.background { + background: #DDD; } + .form-border-box.nobordertop { + border-top: none; } + .form-border-box + .form-border-box { + border-top: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#emoticon-list-wrapper { + display: flex; + width: 100%; + justify-content: center; + box-sizing: border-box; } + +#button-list-wrapper { + border-bottom: 0.05rem solid #AAA; + background: #EEE; + overflow: hidden; } + +.button-list { + margin: 0; + padding: 0; + list-style: none; } + +.button-list.emoticons > li { + font-size: 1.25rem; + display: inline-block; + padding: 0.2rem; + border-bottom: 0.2rem solid transparent; + border-radius: 0.1rem; + cursor: pointer; } + .button-list.emoticons > li:hover, .button-list.emoticons > li:active { + border-bottom: 0.2rem solid #AAA; } + +.button-list.markdown > li { + float: left; + padding: 0.25rem; + cursor: pointer; + width: 1.75rem; + box-sizing: border-box; + text-align: center; } + .button-list.markdown > li:hover, .button-list.markdown > li:active { + color: #000; } + +#content-editor { + border: none; + margin: 0; } + #content-editor-wrapper { + border-top: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +input, select, textarea { + width: 100%; + background: #EEE; + color: #444; + font-family: inherit; + font-size: 0.7rem; + padding: 0.25rem; + border: 0.05rem solid #AAA; + box-sizing: border-box; } + input:focus, select:focus, textarea:focus { + outline: none; } + +textarea { + font-family: "Kadwa", "sans-serif"; + box-sizing: border-box; + display: block; + resize: vertical; + min-height: 15rem; + line-height: 1.2rem; + padding: 0.5rem; + -webkit-hyphens: none; + hyphens: none; + cursor: auto; } + +input[type="submit"] { + text-transform: uppercase; + border-radius: 0.1rem; } + +label { + text-transform: uppercase; + font-weight: normal; } + label:after { + content: ":"; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#insert-button, #update-button, #delete-button { + color: #EEE; + border: 0.05rem solid #404040; } + +#insert-button { + background: #4D8D5D; } + #insert-button:active, #insert-button:focus { + background: #3b6c47; } + +#update-button { + background: #6A8AA5; } + #update-button:active, #update-button:focus { + background: #537089; } + +#delete-button { + background: #C45C66; } + #delete-button:active, #delete-button:focus { + background: #ae3f4a; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form message list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#message-list { + margin: 0; + padding: 0.5rem; + list-style: none; + background: #C45C66; + color: #EEE; + font-size: 0.6rem; } + #message-list-wrapper { + clear: both; + margin-bottom: 0.5rem; + border: 0.1rem solid #ae3f4a; } + #message-list code { + color: inherit; + font-weight: bold; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Search form +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#search-form { + margin-bottom: 1rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import other files +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@media only screen and (max-width: 90em) { + .item-container.grid { + grid-template-columns: 1fr 1fr; } } +@media only screen and (min-width: 62.5em) { + #main-content { + border: 0.05rem solid #AAA; + border-top: none; + border-bottom: none; } } +@media only screen and (max-width: 62.5em) { + .item-container.grid { + grid-template-columns: 1fr; } } +@media only screen and (max-width: 50em) { + html { + font-size: 1.125rem; + /*18px*/ } } +@media only screen and (max-width: 37.5em) { + #main-content { + padding: 0.5rem; } + + #main-navi { + font-size: 1rem; } + #main-navi ul li span { + display: none; } + #main-navi ul li .fa { + margin-right: 0; } + #main-navi a { + padding: 0.5rem; } + + #emoticon-list-wrapper { + display: none; } + + .item-container.grid { + grid-column-gap: 0.75rem; + grid-row-gap: 0.75rem; + column-gap: 0.75rem; + row-gap: 0.75rem; } + + .form-grid { + grid-template-columns: 7rem 1fr; } + .form-grid-item, .form-grid-item.first, .form-grid label { + grid-column: unset; } + + .actions { + float: none; + display: flex; + width: 100%; + flex-grow: 1; + justify-content: center; + overflow: hidden; + box-sizing: border-box; } + .actions-before { + float: none; } + .actions li { + flex-grow: 1; } + .actions li + li { + border-left: none; } } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Fontello +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa:before { + font-family: "Fontello"; + font-style: normal; + font-weight: normal; + speak: never; + display: inline-block; + text-decoration: inherit; + text-align: center; + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font Awesome icons +# ------------------ +# Copyright (C) 2016 by Dave Gandy +# Author: Dave Gandy +# License: SIL +# Homepage: http://fortawesome.github.com/Font-Awesome/ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa-pencil:before { + content: '\e800'; } + +.fa-comment:before { + content: '\e801'; } + +.fa-chat:before { + content: '\e802'; } + +.fa-users:before { + content: '\e803'; } + +.fa-cancel:before { + content: '\e804'; } + +.fa-plus:before { + content: '\e805'; } + +.fa-list:before { + content: '\e80b'; } + +.fa-arrow-down:before { + content: '\e80e'; } + +.fa-arrow-up:before { + content: '\e811'; } + +.fa-arrows-cw:before { + content: '\e813'; } + +.fa-tag:before { + content: '\e815'; } + +.fa-tags:before { + content: '\e816'; } + +.fa-star:before { + content: '\e817'; } + +.fa-star-empty:before { + content: '\e818'; } + +.fa-eye:before { + content: '\e81a'; } + +.fa-ok:before { + content: '\e81b'; } + +.fa-info-circled:before { + content: '\e81c'; } + +.fa-home:before { + content: '\e81d'; } + +.fa-attach:before { + content: '\e81e'; } + +.fa-cog:before { + content: '\e81f'; } + +.fa-check:before { + content: '\e821'; } + +.fa-floppy:before { + content: '\e822'; } + +.fa-eye-off:before { + content: '\e823'; } + +.fa-folder-open:before { + content: '\e824'; } + +.fa-wrench:before { + content: '\e825'; } + +.fa-search:before { + content: '\f002'; } + +.fa-envelope-o:before { + content: '\f003'; } + +.fa-user:before { + content: '\f007'; } + +.fa-trash-o:before { + content: '\f014'; } + +.fa-clock-o:before { + content: '\f017'; } + +.fa-book:before { + content: '\f02d'; } + +.fa-bold:before { + content: '\f032'; } + +.fa-italic:before { + content: '\f033'; } + +.fa-picture-o:before { + content: '\f03e'; } + +.fa-pencil-square-o:before { + content: '\f044'; } + +.fa-arrow-left:before { + content: '\f060'; } + +.fa-arrow-right:before { + content: '\f061'; } + +.fa-exclamation-triangle:before { + content: '\f071'; } + +.fa-key:before { + content: '\f084'; } + +.fa-sign-out:before { + content: '\f08b'; } + +.fa-external-link:before { + content: '\f08e'; } + +.fa-sign-in:before { + content: '\f090'; } + +.fa-github-square:before { + content: '\f092'; } + +.fa-uncheck:before { + content: '\f096'; } + +.fa-link:before { + content: '\f0c1'; } + +.fa-menu:before { + content: '\f0c9'; } + +.fa-list-ul:before { + content: '\f0ca'; } + +.fa-list-ol:before { + content: '\f0cb'; } + +.fa-dashboard:before { + content: '\f0e4'; } + +.fa-comment-empty:before { + content: '\f0e5'; } + +.fa-chat-empty:before { + content: '\f0e6'; } + +.fa-file-text-o:before { + content: '\f0f6'; } + +.fa-quote-left:before { + content: '\f10d'; } + +.fa-quote-right:before { + content: '\f10e'; } + +.fa-smile:before { + content: '\f118'; } + +.fa-frown:before { + content: '\f119'; } + +.fa-meh:before { + content: '\f11a'; } + +.fa-keyboard:before { + content: '\f11c'; } + +.fa-code:before { + content: '\f121'; } + +.fa-attention-alt:before { + content: '\f12a'; } + +.fa-sort-name-up:before { + content: '\f15d'; } + +.fa-sort-name-down:before { + content: '\f15e'; } + +.fa-sort-up:before { + content: '\f160'; } + +.fa-sort-down:before { + content: '\f161'; } + +.fa-sort-number-up:before { + content: '\f162'; } + +.fa-sort-number-down:before { + content: '\f163'; } + +.fa-sun:before { + content: '\f185'; } + +.fa-moon:before { + content: '\f186'; } + +.fa-box:before { + content: '\f187'; } + +.fa-bug:before { + content: '\f188'; } + +.fa-language:before { + content: '\f1ab'; } + +.fa-database:before { + content: '\f1c0'; } + +.fa-file-archive:before { + content: '\f1c6'; } + +.fa-header:before { + content: '\f1dc'; } + +.fa-newspaper-o:before { + content: '\f1ea'; } + +.fa-at:before { + content: '\f1fa'; } + +.fa-toggle-off:before { + content: '\f204'; } + +.fa-toggle-on:before { + content: '\f205'; } + +.fa-user-secret:before { + content: '\f21b'; } + +.fa-server:before { + content: '\f233'; } + +.fa-commenting:before { + content: '\f27a'; } + +.fa-commenting-o:before { + content: '\f27b'; } + +.fa-user-circle-o:before { + content: '\f2be'; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Font Awesome" [4.7.0] (by Fontello): SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Fontello"; + font-weight: 400; + font-style: normal; + src: url("../font/fontello.woff2") format("woff2"); } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Kadwa": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Kadwa"; + font-weight: 400; + src: url("../font/kadwa-n-400.woff2") format("woff2"); } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Ruda": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Ruda"; + font-weight: 400; + src: url("../font/ruda-n-400.woff2") format("woff2"); } +@font-face { + font-family: "Ruda"; + font-weight: 700; + src: url("../font/ruda-n-700.woff2") format("woff2"); } +#theme-toogle-bright { + display: none; } diff --git a/theme/admin/static/css/bright.scss b/theme/admin/static/css/bright.scss new file mode 100644 index 0000000..3d65448 --- /dev/null +++ b/theme/admin/static/css/bright.scss @@ -0,0 +1,69 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content background and border color +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$htmlBackground: url("../img/noise-bright.png") #DDD; +$backgroundColor: #FFF; +$backgroundColorEmphasize: #EEE; +$borderColor: #AAA; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header and navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$headerBarTextColor: #333; +$headerBarBackgroundColor: #5E819F; +$navigationLinkBackgroundColor: #DDD; +$navigationLinkFocusedBackgroundColor: #CCC; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text colors +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$textColor: #333; +$textColorLight: #444; +$textColorStrong: #000; +$formElementTextColor: #404040; +$codeTextColor: #008B45; +$linkColor: #0060A0; +$linkColorFocused: #CCC; +$warningTextColor: #B03060; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Misc +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$itemLinkHoverBackgroundColor: #DDD; +$paginationActiveBackgroundColor: #CCC; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Forms +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$formBackgroundColorEmphasize: #DDD; +$formButtonBorderColor: #404040; +$formButtonTextColor: #EEE; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$insertButtonBackgroundColor: #4D8D5D; +$updateButtonBackgroundColor: #6A8AA5; +$deleteButtonBackgroundColor: #C45C66; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Information message box +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$messageListTextColor: #EEE; +$messageListBackgroundColor: #C45C66; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$scrollbarColor: #A1A1A1; +$scrollbarHoverColor: #888888; +$scrollbarBackground: #E1E1E1; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import stylesheet +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@import "import/styles"; + +#theme-toogle-bright { + display: none; +} diff --git a/theme/admin/static/css/dark.css b/theme/admin/static/css/dark.css new file mode 100644 index 0000000..1a46895 --- /dev/null +++ b/theme/admin/static/css/dark.css @@ -0,0 +1,972 @@ +@charset "UTF-8"; +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content background and border color +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header and navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text colors +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Misc +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Forms +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Information message box +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import stylesheet +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import variables +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Line height +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font families +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Heading font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content widths +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Selection +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::selection { + background: #BBB; + color: #000; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Placeholders +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::placeholder { + color: #8D9AA7; + opacity: 0.5; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +* { + scrollbar-color: #838994 #2E3440; } + *::-webkit-scrollbar { + width: 0.75rem; } + *::-webkit-scrollbar-track { + background: #2E3440; } + *::-webkit-scrollbar-thumb { + background: #838994; + background-clip: padding-box; + border: 0.15rem solid transparent; } + *::-webkit-scrollbar-thumb:hover { + background: #4C566A; + background-clip: padding-box; + border: 0.15rem solid transparent; } + *::-webkit-scrollbar-corner { + background: transparent; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Hyperlinks +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +a { + color: #5EA4D3; + text-decoration: none; } + a:hover { + text-decoration: underline; } + a:focus { + background: #42474E; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Headings +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +h1, h2, h3 { + margin-bottom: 0; } + h1 + p, h2 + p, h3 + p { + margin-top: 0; } + h1 .fa, h2 .fa, h3 .fa { + margin-right: 0.25rem; } + +h1 { + margin-top: 0; + font-size: 0.8rem; } + +h2 { + font-size: 0.7rem; } + +h3 { + font-size: 0.65rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Document +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +html, body { + margin: 0; + padding: 0; } + +html { + font-size: 1.25rem; + color: #9DAAB7; + background: url("../img/noise-dark.png") #3D434B; + -webkit-hyphens: auto; + word-break: break-word; + hyphens: auto; } + +body { + font-family: "Ruda", "sans-serif"; + font-size: 0.7rem; + line-height: 1.2rem; + display: flex; + min-height: 100vh; + flex-direction: column; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main content +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content { + flex: 1; + width: 100%; + background: #3D434B; + box-sizing: border-box; + padding: 0.75rem; } + #main-content.wide { + max-width: 90rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Width +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content, .header-content { + max-width: 50rem; + margin: 0 auto; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-header { + font-size: 0.6rem; } + +#header-text { + font-size: 0.8rem; + text-transform: uppercase; } +#header-desc { + line-height: 1rem; } +#header-text, #header-desc { + color: #000; + font-weight: bold; } +#header-logo { + display: block; + max-height: 5rem; + float: left; + margin-right: 0.5rem; } + +.header-line { + padding: 0.25rem 0.75rem; + overflow: hidden; + background: #32373E; } + .header-line + .header-line { + border: 0.05rem solid #1D232B; + border-left: none; + border-right: none; } + .header-line.background { + background: #3B546A; + position: sticky; + top: 0; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-footer { + font-size: 0.6rem; + background: #32373E; + border-top: 0.05rem solid #1D232B; + padding: 0.5rem 0.75rem; + text-align: center; } + #main-footer ul { + margin: 0; + padding: 0; + list-style: none; } + #main-footer ul li { + display: inline; } + #main-footer ul li .fa { + margin-right: 0.125rem; } + #main-footer ul li:after { + content: " – "; + font-weight: bold; } + #main-footer ul li:last-child:after { + content: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-navi ul { + list-style: none; + margin: 0; + padding: 0; } + #main-navi ul li { + display: inline; } + #main-navi ul li .fa { + margin-right: 0.25rem; } + #main-navi ul li:last-child { + float: right; } + #main-navi ul li:first-child { + float: none; } +#main-navi a { + padding: 0.1rem 0.3rem; + background: #2D333B; + border: 0.05rem solid #1D232B; + color: inherit; + text-decoration: none; + text-align: center; + display: inline-block; } + #main-navi a:hover, #main-navi a:focus { + text-decoration: none; + background: #1D232B; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Site Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#site-navi { + clear: both; + display: flex; + box-sizing: border-box; + justify-content: space-between; + margin-top: 0.75rem; } + #site-navi > div { + display: flex; + align-items: center; + border: 0.05rem solid #1D232B; + background: #32373E; } + #site-navi > div > a { + display: block; } + #site-navi .disabled { + pointer-events: none; + color: #1D232B; } + #site-navi ol { + list-style: none; + margin: 0; + padding: 0; } + #site-navi ol li { + float: left; + display: inline-block; } + #site-navi ol li + li { + border-left: 0.05rem solid #1D232B; } + #site-navi ol li.active a { + background: #42474E; + font-weight: 600; + pointer-events: none; } + #site-navi a { + padding: 0 0.5rem; + text-decoration: none; + color: inherit; + display: inline-block; } + #site-navi a:hover, #site-navi a:focus { + background: #1D232B; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Actions +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.actions { + margin: 0 0 0.5rem 0; + padding: 0; + list-style: none; + font-size: 0.6rem; + float: right; + text-align: center; } + .actions .fa { + margin-right: 0.1rem; } + .actions li { + display: inline-block; + font-weight: bold; + background: #32373E; + border: 0.05rem solid #1D232B; } + .actions a { + color: inherit; + display: block; + padding: 0 0.25rem; + text-decoration: none; } + +.actions-before { + float: left; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +pre { + margin-bottom: 1rem; + overflow: auto; + -moz-tab-size: 4; + tab-size: 4; + background: #32373E; + padding: 0.5rem; + border: 0.05rem solid #1D232B; } + +code, pre { + font-family: "monospace"; } + +code { + color: #FFB830; } + +p { + margin-top: 0; } + +img { + border: none; + max-width: 100%; } + +.warning { + color: #FFB830; } + +.hidden { + display: none; } + +.no-visual-list { + margin: 0; + padding: 0; + list-style: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Item Element +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.item { + display: flex; + flex-direction: column; + border: 0.05rem solid #1D232B; + margin-bottom: 0.75rem; + clear: both; } + .item header { + padding: 0.5rem 0.75rem; + border-bottom: 0.05rem solid #1D232B; + position: sticky; + top: 0; } + .item header h2 { + margin-top: 0; } + .item footer { + border-top: 0.05rem solid #1D232B; } + .item footer ul { + margin: 0; + padding: 0; + list-style: none; } + .item footer ul li { + display: inline-block; + float: left; } + .item footer ul li:last-child { + float: right; } + .item footer a { + color: inherit; + display: inline-block; + padding: 0.25rem 2rem; } + .item footer a:hover, .item footer a:active { + background: #42474E; } + .item header, .item footer { + background: #32373E; + overflow: hidden; } + .item blockquote { + margin: 0; + padding: 0.75rem; + overflow: hidden; + font-family: inherit; + flex-grow: 1; } + .item blockquote p { + margin-bottom: 0; } + .item-id { + float: right; + color: #8D9AA7; + font-size: 0.7rem; + font-weight: normal; } + .item-meta { + margin: 0; + padding: 0; + list-style: none; } + .item-meta li { + display: inline-block; } + .item-meta li + li:before { + content: " – "; } + .item-meta li.item-meta-right { + float: right; + font-size: 0.6rem; } + .item-meta li.item-meta-right:before { + content: none; } + .item-image { + float: left; + display: block; + margin-right: 0.75rem; + width: 10rem; + height: 7rem; + object-fit: cover; + background: #32373E; + border: 0.05rem solid #1D232B; } + .item-container.grid { + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 1rem; + grid-row-gap: 1rem; + column-gap: 1rem; + row-gap: 1rem; } + .item-container.grid .item { + margin-bottom: 0; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Argument list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.arguments { + list-style: none; + margin: 0; + padding: 0.25rem 0.75rem; + background: #32373E; + font-size: 0.6rem; + text-align: center; + border-top: 0.05rem solid #1D232B; } + .arguments li { + display: inline; } + .arguments li > code { + font-family: inherit; + color: #8D9AA7; } + .arguments li:after { + content: " · "; + font-weight: bold; } + .arguments li:last-child:after { + content: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Grids +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.form-grid { + clear: both; + display: grid; + grid-template-columns: repeat(2, 7.5rem minmax(0, 1fr)); + border-left: 0.05rem solid #1D232B; + border-bottom: 0.05rem solid #1D232B; } + .form-grid.two-columns { + grid-template-columns: 1fr 2fr; } + .form-grid.no-bottom-border { + border-bottom: none; } + .form-grid > label { + display: flex; + align-items: center; + background: #4D535B; } + .form-grid > label .fa { + margin: 0 0.5rem; } + .form-grid-item, + .form-grid > label { + padding: 0.5rem; + border-top: 0.05rem solid #1D232B; + border-right: 0.05rem solid #1D232B; } + .form-grid-item.first { + grid-column: span 3; } + +.form-border-box { + border: 0.05rem solid #1D232B; } + .form-border-box.padding { + padding: 0.5rem; } + .form-border-box.background { + background: #4D535B; } + .form-border-box.nobordertop { + border-top: none; } + .form-border-box + .form-border-box { + border-top: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#emoticon-list-wrapper { + display: flex; + width: 100%; + justify-content: center; + box-sizing: border-box; } + +#button-list-wrapper { + border-bottom: 0.05rem solid #1D232B; + background: #32373E; + overflow: hidden; } + +.button-list { + margin: 0; + padding: 0; + list-style: none; } + +.button-list.emoticons > li { + font-size: 1.25rem; + display: inline-block; + padding: 0.2rem; + border-bottom: 0.2rem solid transparent; + border-radius: 0.1rem; + cursor: pointer; } + .button-list.emoticons > li:hover, .button-list.emoticons > li:active { + border-bottom: 0.2rem solid #1D232B; } + +.button-list.markdown > li { + float: left; + padding: 0.25rem; + cursor: pointer; + width: 1.75rem; + box-sizing: border-box; + text-align: center; } + .button-list.markdown > li:hover, .button-list.markdown > li:active { + color: #CDDAE7; } + +#content-editor { + border: none; + margin: 0; } + #content-editor-wrapper { + border-top: none; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +input, select, textarea { + width: 100%; + background: #32373E; + color: #8D9AA7; + font-family: inherit; + font-size: 0.7rem; + padding: 0.25rem; + border: 0.05rem solid #1D232B; + box-sizing: border-box; } + input:focus, select:focus, textarea:focus { + outline: none; } + +textarea { + font-family: "Kadwa", "sans-serif"; + box-sizing: border-box; + display: block; + resize: vertical; + min-height: 15rem; + line-height: 1.2rem; + padding: 0.5rem; + -webkit-hyphens: none; + hyphens: none; + cursor: auto; } + +input[type="submit"] { + text-transform: uppercase; + border-radius: 0.1rem; } + +label { + text-transform: uppercase; + font-weight: normal; } + label:after { + content: ":"; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#insert-button, #update-button, #delete-button { + color: #CCC; + border: 0.05rem solid #404040; } + +#insert-button { + background: #396644; } + #insert-button:active, #insert-button:focus { + background: #27452e; } + +#update-button { + background: #597186; } + #update-button:active, #update-button:focus { + background: #455767; } + +#delete-button { + background: #8F4F55; } + #delete-button:active, #delete-button:focus { + background: #6e3d41; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form message list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#message-list { + margin: 0; + padding: 0.5rem; + list-style: none; + background: #8C434A; + color: #BBB; + font-size: 0.6rem; } + #message-list-wrapper { + clear: both; + margin-bottom: 0.5rem; + border: 0.1rem solid #6a3238; } + #message-list code { + color: inherit; + font-weight: bold; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Search form +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#search-form { + margin-bottom: 1rem; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import other files +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@media only screen and (max-width: 90em) { + .item-container.grid { + grid-template-columns: 1fr 1fr; } } +@media only screen and (min-width: 62.5em) { + #main-content { + border: 0.05rem solid #1D232B; + border-top: none; + border-bottom: none; } } +@media only screen and (max-width: 62.5em) { + .item-container.grid { + grid-template-columns: 1fr; } } +@media only screen and (max-width: 50em) { + html { + font-size: 1.125rem; + /*18px*/ } } +@media only screen and (max-width: 37.5em) { + #main-content { + padding: 0.5rem; } + + #main-navi { + font-size: 1rem; } + #main-navi ul li span { + display: none; } + #main-navi ul li .fa { + margin-right: 0; } + #main-navi a { + padding: 0.5rem; } + + #emoticon-list-wrapper { + display: none; } + + .item-container.grid { + grid-column-gap: 0.75rem; + grid-row-gap: 0.75rem; + column-gap: 0.75rem; + row-gap: 0.75rem; } + + .form-grid { + grid-template-columns: 7rem 1fr; } + .form-grid-item, .form-grid-item.first, .form-grid label { + grid-column: unset; } + + .actions { + float: none; + display: flex; + width: 100%; + flex-grow: 1; + justify-content: center; + overflow: hidden; + box-sizing: border-box; } + .actions-before { + float: none; } + .actions li { + flex-grow: 1; } + .actions li + li { + border-left: none; } } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Fontello +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa:before { + font-family: "Fontello"; + font-style: normal; + font-weight: normal; + speak: never; + display: inline-block; + text-decoration: inherit; + text-align: center; + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font Awesome icons +# ------------------ +# Copyright (C) 2016 by Dave Gandy +# Author: Dave Gandy +# License: SIL +# Homepage: http://fortawesome.github.com/Font-Awesome/ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa-pencil:before { + content: '\e800'; } + +.fa-comment:before { + content: '\e801'; } + +.fa-chat:before { + content: '\e802'; } + +.fa-users:before { + content: '\e803'; } + +.fa-cancel:before { + content: '\e804'; } + +.fa-plus:before { + content: '\e805'; } + +.fa-list:before { + content: '\e80b'; } + +.fa-arrow-down:before { + content: '\e80e'; } + +.fa-arrow-up:before { + content: '\e811'; } + +.fa-arrows-cw:before { + content: '\e813'; } + +.fa-tag:before { + content: '\e815'; } + +.fa-tags:before { + content: '\e816'; } + +.fa-star:before { + content: '\e817'; } + +.fa-star-empty:before { + content: '\e818'; } + +.fa-eye:before { + content: '\e81a'; } + +.fa-ok:before { + content: '\e81b'; } + +.fa-info-circled:before { + content: '\e81c'; } + +.fa-home:before { + content: '\e81d'; } + +.fa-attach:before { + content: '\e81e'; } + +.fa-cog:before { + content: '\e81f'; } + +.fa-check:before { + content: '\e821'; } + +.fa-floppy:before { + content: '\e822'; } + +.fa-eye-off:before { + content: '\e823'; } + +.fa-folder-open:before { + content: '\e824'; } + +.fa-wrench:before { + content: '\e825'; } + +.fa-search:before { + content: '\f002'; } + +.fa-envelope-o:before { + content: '\f003'; } + +.fa-user:before { + content: '\f007'; } + +.fa-trash-o:before { + content: '\f014'; } + +.fa-clock-o:before { + content: '\f017'; } + +.fa-book:before { + content: '\f02d'; } + +.fa-bold:before { + content: '\f032'; } + +.fa-italic:before { + content: '\f033'; } + +.fa-picture-o:before { + content: '\f03e'; } + +.fa-pencil-square-o:before { + content: '\f044'; } + +.fa-arrow-left:before { + content: '\f060'; } + +.fa-arrow-right:before { + content: '\f061'; } + +.fa-exclamation-triangle:before { + content: '\f071'; } + +.fa-key:before { + content: '\f084'; } + +.fa-sign-out:before { + content: '\f08b'; } + +.fa-external-link:before { + content: '\f08e'; } + +.fa-sign-in:before { + content: '\f090'; } + +.fa-github-square:before { + content: '\f092'; } + +.fa-uncheck:before { + content: '\f096'; } + +.fa-link:before { + content: '\f0c1'; } + +.fa-menu:before { + content: '\f0c9'; } + +.fa-list-ul:before { + content: '\f0ca'; } + +.fa-list-ol:before { + content: '\f0cb'; } + +.fa-dashboard:before { + content: '\f0e4'; } + +.fa-comment-empty:before { + content: '\f0e5'; } + +.fa-chat-empty:before { + content: '\f0e6'; } + +.fa-file-text-o:before { + content: '\f0f6'; } + +.fa-quote-left:before { + content: '\f10d'; } + +.fa-quote-right:before { + content: '\f10e'; } + +.fa-smile:before { + content: '\f118'; } + +.fa-frown:before { + content: '\f119'; } + +.fa-meh:before { + content: '\f11a'; } + +.fa-keyboard:before { + content: '\f11c'; } + +.fa-code:before { + content: '\f121'; } + +.fa-attention-alt:before { + content: '\f12a'; } + +.fa-sort-name-up:before { + content: '\f15d'; } + +.fa-sort-name-down:before { + content: '\f15e'; } + +.fa-sort-up:before { + content: '\f160'; } + +.fa-sort-down:before { + content: '\f161'; } + +.fa-sort-number-up:before { + content: '\f162'; } + +.fa-sort-number-down:before { + content: '\f163'; } + +.fa-sun:before { + content: '\f185'; } + +.fa-moon:before { + content: '\f186'; } + +.fa-box:before { + content: '\f187'; } + +.fa-bug:before { + content: '\f188'; } + +.fa-language:before { + content: '\f1ab'; } + +.fa-database:before { + content: '\f1c0'; } + +.fa-file-archive:before { + content: '\f1c6'; } + +.fa-header:before { + content: '\f1dc'; } + +.fa-newspaper-o:before { + content: '\f1ea'; } + +.fa-at:before { + content: '\f1fa'; } + +.fa-toggle-off:before { + content: '\f204'; } + +.fa-toggle-on:before { + content: '\f205'; } + +.fa-user-secret:before { + content: '\f21b'; } + +.fa-server:before { + content: '\f233'; } + +.fa-commenting:before { + content: '\f27a'; } + +.fa-commenting-o:before { + content: '\f27b'; } + +.fa-user-circle-o:before { + content: '\f2be'; } + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Font Awesome" [4.7.0] (by Fontello): SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Fontello"; + font-weight: 400; + font-style: normal; + src: url("../font/fontello.woff2") format("woff2"); } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Kadwa": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Kadwa"; + font-weight: 400; + src: url("../font/kadwa-n-400.woff2") format("woff2"); } +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Ruda": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Ruda"; + font-weight: 400; + src: url("../font/ruda-n-400.woff2") format("woff2"); } +@font-face { + font-family: "Ruda"; + font-weight: 700; + src: url("../font/ruda-n-700.woff2") format("woff2"); } +#theme-toogle-dark { + display: none; } diff --git a/theme/admin/static/css/dark.scss b/theme/admin/static/css/dark.scss new file mode 100644 index 0000000..472095a --- /dev/null +++ b/theme/admin/static/css/dark.scss @@ -0,0 +1,69 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content background and border color +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$htmlBackground: url("../img/noise-dark.png") #3D434B; +$backgroundColorEmphasize: #32373E; +$backgroundColor: #3D434B; +$borderColor: #1D232B; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header and navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$headerBarTextColor: #000; +$headerBarBackgroundColor: #3B546A; +$navigationLinkBackgroundColor: #2D333B; +$navigationLinkFocusedBackgroundColor: #1D232B; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text colors +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$textColor: #9DAAB7; +$textColorLight: #8D9AA7; +$textColorStrong: #CDDAE7; +$formElementTextColor: #8D9AA7; +$codeTextColor: #FFB830; +$linkColor: #5EA4D3; +$linkColorFocused: #42474E; +$warningTextColor: #FFB830; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Misc +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$itemLinkHoverBackgroundColor: #42474E; +$paginationActiveBackgroundColor: #42474E; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Forms +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$formBackgroundColorEmphasize: #4D535B; +$formButtonBorderColor: #404040; +$formButtonTextColor: #CCC; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$insertButtonBackgroundColor: #396644; +$updateButtonBackgroundColor: #597186; +$deleteButtonBackgroundColor: #8F4F55; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Information message box +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$messageListTextColor: #BBB; +$messageListBackgroundColor: #8C434A; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$scrollbarColor: #838994; +$scrollbarHoverColor: #4C566A; +$scrollbarBackground: #2E3440; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import stylesheet +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@import "import/styles"; + +#theme-toogle-dark { + display: none; +} diff --git a/theme/admin/static/css/import/_fontello.scss b/theme/admin/static/css/import/_fontello.scss new file mode 100644 index 0000000..7c2e964 --- /dev/null +++ b/theme/admin/static/css/import/_fontello.scss @@ -0,0 +1,116 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Fontello +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa:before { + font-family: "Fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + text-align: center; + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font Awesome icons +# ------------------ +# Copyright (C) 2016 by Dave Gandy +# Author: Dave Gandy +# License: SIL +# Homepage: http://fortawesome.github.com/Font-Awesome/ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.fa-pencil:before { content: '\e800'; } +.fa-comment:before { content: '\e801'; } +.fa-chat:before { content: '\e802'; } +.fa-users:before { content: '\e803'; } +.fa-cancel:before { content: '\e804'; } +.fa-plus:before { content: '\e805'; } +.fa-list:before { content: '\e80b'; } +.fa-arrow-down:before { content: '\e80e'; } +.fa-arrow-up:before { content: '\e811'; } +.fa-arrows-cw:before { content: '\e813'; } +.fa-tag:before { content: '\e815'; } +.fa-tags:before { content: '\e816'; } +.fa-star:before { content: '\e817'; } +.fa-star-empty:before { content: '\e818'; } +.fa-eye:before { content: '\e81a'; } +.fa-ok:before { content: '\e81b'; } +.fa-info-circled:before { content: '\e81c'; } +.fa-home:before { content: '\e81d'; } +.fa-attach:before { content: '\e81e'; } +.fa-cog:before { content: '\e81f'; } +.fa-check:before { content: '\e821'; } +.fa-floppy:before { content: '\e822'; } +.fa-eye-off:before { content: '\e823'; } +.fa-folder-open:before { content: '\e824'; } +.fa-wrench:before { content: '\e825'; } +.fa-search:before { content: '\f002'; } +.fa-envelope-o:before { content: '\f003'; } +.fa-user:before { content: '\f007'; } +.fa-trash-o:before { content: '\f014'; } +.fa-clock-o:before { content: '\f017'; } +.fa-book:before { content: '\f02d'; } +.fa-bold:before { content: '\f032'; } +.fa-italic:before { content: '\f033'; } +.fa-picture-o:before { content: '\f03e'; } +.fa-pencil-square-o:before { content: '\f044'; } +.fa-arrow-left:before { content: '\f060'; } +.fa-arrow-right:before { content: '\f061'; } +.fa-exclamation-triangle:before { content: '\f071'; } +.fa-key:before { content: '\f084'; } +.fa-sign-out:before { content: '\f08b'; } +.fa-external-link:before { content: '\f08e'; } +.fa-sign-in:before { content: '\f090'; } +.fa-github-square:before { content: '\f092'; } +.fa-uncheck:before { content: '\f096'; } +.fa-link:before { content: '\f0c1'; } +.fa-menu:before { content: '\f0c9'; } +.fa-list-ul:before { content: '\f0ca'; } +.fa-list-ol:before { content: '\f0cb'; } +.fa-dashboard:before { content: '\f0e4'; } +.fa-comment-empty:before { content: '\f0e5'; } +.fa-chat-empty:before { content: '\f0e6'; } +.fa-file-text-o:before { content: '\f0f6'; } +.fa-quote-left:before { content: '\f10d'; } +.fa-quote-right:before { content: '\f10e'; } +.fa-smile:before { content: '\f118'; } +.fa-frown:before { content: '\f119'; } +.fa-meh:before { content: '\f11a'; } +.fa-keyboard:before { content: '\f11c'; } +.fa-code:before { content: '\f121'; } +.fa-attention-alt:before { content: '\f12a'; } +.fa-sort-name-up:before { content: '\f15d'; } +.fa-sort-name-down:before { content: '\f15e'; } +.fa-sort-up:before { content: '\f160'; } +.fa-sort-down:before { content: '\f161'; } +.fa-sort-number-up:before { content: '\f162'; } +.fa-sort-number-down:before { content: '\f163'; } +.fa-sun:before { content: '\f185'; } +.fa-moon:before { content: '\f186'; } +.fa-box:before { content: '\f187'; } +.fa-bug:before { content: '\f188'; } +.fa-language:before { content: '\f1ab'; } +.fa-database:before { content: '\f1c0'; } +.fa-file-archive:before { content: '\f1c6'; } +.fa-header:before { content: '\f1dc'; } +.fa-newspaper-o:before { content: '\f1ea'; } +.fa-at:before { content: '\f1fa'; } +.fa-toggle-off:before { content: '\f204'; } +.fa-toggle-on:before { content: '\f205'; } +.fa-user-secret:before { content: '\f21b'; } +.fa-server:before { content: '\f233'; } +.fa-commenting:before { content: '\f27a'; } +.fa-commenting-o:before { content: '\f27b'; } +.fa-user-circle-o:before { content: '\f2be'; } diff --git a/theme/admin/static/css/import/_fonts.scss b/theme/admin/static/css/import/_fonts.scss new file mode 100644 index 0000000..4431bec --- /dev/null +++ b/theme/admin/static/css/import/_fonts.scss @@ -0,0 +1,33 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Font Awesome" [4.7.0] (by Fontello): SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Fontello"; + font-weight: 400; + font-style: normal; + src: url("../font/fontello.woff2") format("woff2"); +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Kadwa": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Kadwa"; + font-weight: 400; + src: url("../font/kadwa-n-400.woff2") format("woff2"); +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font "Ruda": SIL Open Font License (OFL) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@font-face { + font-family: "Ruda"; + font-weight: 400; + src: url("../font/ruda-n-400.woff2") format("woff2"); +} + +@font-face { + font-family: "Ruda"; + font-weight: 700; + src: url("../font/ruda-n-700.woff2") format("woff2"); +} diff --git a/theme/admin/static/css/import/_responsive.scss b/theme/admin/static/css/import/_responsive.scss new file mode 100644 index 0000000..9675071 --- /dev/null +++ b/theme/admin/static/css/import/_responsive.scss @@ -0,0 +1,92 @@ +@media only screen and (max-width: 90em /*1440px*/) { + .item-container.grid { + grid-template-columns: 1fr 1fr; + } +} + +@media only screen and (min-width: 62.5em /*1000px*/) { + #main-content { + border: 0.05rem solid $borderColor; + border-top: none; + border-bottom: none; + } +} + +@media only screen and (max-width: 62.5em /*1000px*/) { + .item-container.grid { + grid-template-columns: 1fr; + } +} + +@media only screen and (max-width: 50em /*800px*/) { + html { + font-size: 1.125rem; /*18px*/ + } +} + +@media only screen and (max-width: 37.5em /*600px*/) { + #main-content { + padding: 0.5rem; + } + + #main-navi { + font-size: 1rem; + + ul { + li { + span { + display: none; + } + + .fa { + margin-right: 0; + } + } + } + + a { + padding: 0.5rem; + } + } + + #emoticon-list-wrapper { + display: none; + } + + .item-container.grid { + grid-column-gap: 0.75rem; + grid-row-gap: 0.75rem; + column-gap: 0.75rem; + row-gap: 0.75rem; + } + + .form-grid { + grid-template-columns: 7rem 1fr; + + &-item, &-item.first, label { + grid-column: unset; + } + } + + .actions { + float: none; + display: flex; + width: 100%; + flex-grow: 1; + justify-content: center; + overflow: hidden; + box-sizing: border-box; + + &-before { + float: none; + } + + li { + flex-grow: 1; + + + li { + border-left: none; + } + } + } +} diff --git a/theme/admin/static/css/import/_styles.scss b/theme/admin/static/css/import/_styles.scss new file mode 100644 index 0000000..93c0d8f --- /dev/null +++ b/theme/admin/static/css/import/_styles.scss @@ -0,0 +1,795 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import variables +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@import "variables"; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Selection +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::selection { + background: #BBB; + color: #000; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Placeholders +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +::placeholder { + color: $textColorLight; + opacity: 0.5; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Scrollbars +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +* { + // Firefox (TODO: Possibility to add padding?!) + scrollbar-color: $scrollbarColor $scrollbarBackground; + + // Chrome, Edge & Safari + &::-webkit-scrollbar { + width: 0.75rem; + + &-track { + background: $scrollbarBackground; + } + + &-thumb { + background: $scrollbarColor; + background-clip: padding-box; + border: 0.15rem solid transparent; + + &:hover { + background: $scrollbarHoverColor; + background-clip: padding-box; + border: 0.15rem solid transparent; + } + } + + &-corner { + background: transparent; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Hyperlinks +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +a { + color: $linkColor; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + + &:focus { + background: $linkColorFocused; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Headings +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +h1, h2, h3 { + margin-bottom: 0; + + +p { + margin-top: 0; + } + + .fa { + margin-right: 0.25rem; + } +} + +h1 { + margin-top: 0; + font-size: $fontSizeH1; +} + +h2 { + font-size: $fontSizeH2; +} + +h3 { + font-size: $fontSizeH3; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Document +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +html, body { + margin: 0; + padding: 0; +} + +html { + font-size: 1.25rem; + color: $textColor; + background: $htmlBackground; + -webkit-hyphens: auto; + word-break: break-word; + hyphens: auto; +} + +body { + font-family: $fontFamily; + font-size: $fontSize; + line-height: $lineHeight; + display: flex; + min-height: 100vh; + flex-direction: column; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main content +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content { + flex: 1; + width: 100%; + background: $backgroundColor; + box-sizing: border-box; + padding: 0.75rem; + // border definition in _responsive.scss + + &.wide { + max-width: $contentWidthWide; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Width +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-content, .header-content { + max-width: $contentWidth; + margin: 0 auto; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-header { + font-size: $fontSizeSmall; +} + +#header { + &-text { + font-size: $fontSizeLarge; + text-transform: uppercase; + } + + &-desc { + line-height: 1rem; + } + &-text, &-desc { + color: $headerBarTextColor; + font-weight: bold; + } + + &-logo { + display: block; + max-height: 5rem; + float: left; + margin-right: 0.5rem; + } +} + +.header-line { + padding: 0.25rem 0.75rem; + overflow: hidden; + background: $backgroundColorEmphasize; + + +.header-line { + border: 0.05rem solid $borderColor; + border-left: none; + border-right: none; + } + + &.background { + background: $headerBarBackgroundColor; + position: sticky; + top: 0; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-footer { + font-size: $fontSizeSmall; + background: $backgroundColorEmphasize; + border-top: 0.05rem solid $borderColor; + padding: 0.5rem 0.75rem; + text-align: center; + + ul { + margin: 0; + padding: 0; + list-style: none; + + li { + display: inline; + + .fa { + margin-right: 0.125rem; + } + } + + li:after { + content: " – "; + font-weight: bold; + } + + li:last-child:after { + content: none; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Main Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#main-navi { + ul { + list-style: none; + margin: 0; + padding: 0; + + li { + display: inline; + + .fa { + margin-right: 0.25rem; + } + } + + li:last-child { + float: right; + } + + li:first-child { + float: none; + } + } + + a { + padding: 0.1rem 0.3rem; + background: $navigationLinkBackgroundColor; + border: 0.05rem solid $borderColor; + color: inherit; + text-decoration: none; + text-align: center; + display: inline-block; + + &:hover, &:focus { + text-decoration: none; + background: $navigationLinkFocusedBackgroundColor; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Site Navigation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#site-navi { + clear: both; + display: flex; + box-sizing: border-box; + justify-content: space-between; + margin-top: 0.75rem; + + > div { + display: flex; + align-items: center; + border: 0.05rem solid $borderColor; + background: $backgroundColorEmphasize; + + > a { + display: block; + } + } + + .disabled { + pointer-events: none; + color: $borderColor; + } + + ol { + list-style: none; + margin: 0; + padding: 0; + + li { + float: left; + display: inline-block; + + + li { + border-left: 0.05rem solid $borderColor; + } + + &.active a { + background: $paginationActiveBackgroundColor; + font-weight: 600; + pointer-events: none; + } + } + } + + a { + padding: 0 0.5rem; + text-decoration: none; + color: inherit; + display: inline-block; + + &:hover, &:focus { + background: $navigationLinkFocusedBackgroundColor; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Actions +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.actions { + margin: 0 0 0.5rem 0; + padding: 0; + list-style: none; + font-size: $fontSizeSmall; + float: right; + text-align: center; + + .fa { + margin-right: 0.1rem; + } + + li { + display: inline-block; + font-weight: bold; + background: $backgroundColorEmphasize; + border: 0.05rem solid $borderColor; + } + + a { + color: inherit; + display: block; + padding: 0 0.25rem; + text-decoration: none; + } +} + +.actions-before { + float: left; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +pre { + margin-bottom: 1rem; + overflow: auto; + -moz-tab-size: 4; + tab-size: 4; + background: $backgroundColorEmphasize; + padding: 0.5rem; + border: 0.05rem solid $borderColor; +} + +code, pre { + font-family: $fontFamilyMonospaced; +} + +code { + color: $codeTextColor; +} + +p { + margin-top: 0; +} + +img { + border: none; + max-width: 100%; +} + +.warning { + color: $warningTextColor; +} + +.hidden { + display: none; +} + +.no-visual-list { + margin: 0; + padding: 0; + list-style: none; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Item Element +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.item { + display: flex; + flex-direction: column; + border: 0.05rem solid $borderColor; + margin-bottom: 0.75rem; + clear: both; + + header { + padding: 0.5rem 0.75rem; + border-bottom: 0.05rem solid $borderColor; + position: sticky; + top: 0; + + h2 { + margin-top: 0; + } + } + + footer { + border-top: 0.05rem solid $borderColor; + + ul { + margin: 0; + padding: 0; + list-style: none; + + li { + display: inline-block; + float: left; + + &:last-child { + float: right; + } + } + } + + a { + color: inherit; + display: inline-block; + padding: 0.25rem 2rem; + + &:hover, &:active { + background: $itemLinkHoverBackgroundColor; + } + } + } + + header, footer { + background: $backgroundColorEmphasize; + overflow: hidden; + } + + blockquote { + margin: 0; + padding: 0.75rem; + overflow: hidden; + font-family: inherit; + flex-grow: 1; + + p { + margin-bottom: 0; + } + } + + &-id { + float: right; + color: $textColorLight; + font-size: $fontSize; + font-weight: normal; + } + + &-meta { + margin: 0; + padding: 0; + list-style: none; + + li { + display: inline-block; + + +li:before { + content: " – "; + } + + &.item-meta-right { + float: right; + font-size: $fontSizeSmall; + } + + &.item-meta-right:before { + content: none; + } + } + } + + &-image { + float: left; + display: block; + margin-right: 0.75rem; + width: 10rem; + height: 7rem; + object-fit: cover; + background: $backgroundColorEmphasize; + border: 0.05rem solid $borderColor; + } + + &-container.grid { + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-column-gap: 1rem; + grid-row-gap: 1rem; + column-gap: 1rem; + row-gap: 1rem; + + .item { + margin-bottom: 0; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Argument list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.arguments { + list-style: none; + margin: 0; + padding: 0.25rem 0.75rem; + background: $backgroundColorEmphasize; + font-size: $fontSizeSmall; + text-align: center; + border-top: 0.05rem solid $borderColor; + + li { + display: inline; + + > code { + font-family: inherit; + color: $textColorLight; + } + + &:after { + content: " · "; + font-weight: bold; + } + + &:last-child:after { + content: none; + } + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Grids +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +.form-grid { + clear: both; + display: grid; + grid-template-columns: repeat(2, 7.5rem minmax(0, 1fr)); + + border-left: 0.05rem solid $borderColor; + border-bottom: 0.05rem solid $borderColor; + + &.two-columns { + grid-template-columns: 1fr 2fr; + } + + &.no-bottom-border { + border-bottom: none; + } + + > label { + display: flex; + align-items: center; + background: $formBackgroundColorEmphasize; + + .fa { + margin: 0 0.5rem; + } + } + + &-item, + > label { + padding: 0.5rem; + border-top: 0.05rem solid $borderColor; + border-right: 0.05rem solid $borderColor; + } + + &-item.first { + grid-column: span 3; + } +} + +.form-border-box { + border: 0.05rem solid $borderColor; + + &.padding { + padding: 0.5rem; + } + + &.background { + background: $formBackgroundColorEmphasize; + } + + &.nobordertop { + border-top: none; + } + + +.form-border-box { + border-top: none; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#emoticon-list-wrapper { + display: flex; + width: 100%; + justify-content: center; + box-sizing: border-box; +} + +#button-list-wrapper { + border-bottom: 0.05rem solid $borderColor; + background: $backgroundColorEmphasize; + overflow: hidden; +} + +.button-list { + margin: 0; + padding: 0; + list-style: none; +} + +.button-list.emoticons > li { + font-size: 1.25rem; + display: inline-block; + padding: 0.2rem; + border-bottom: 0.2rem solid transparent; + border-radius: 0.1rem; + cursor: pointer; + + &:hover, &:active { + border-bottom: 0.2rem solid $borderColor; + } +} + +.button-list.markdown > li { + float: left; + padding: 0.25rem; + cursor: pointer; + width: 1.75rem; + box-sizing: border-box; + text-align: center; + + &:hover, &:active { + color: $textColorStrong; + } +} + +#content-editor { + border: none; + margin: 0; + + &-wrapper { + border-top: none; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form elements +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +input, select, textarea { + width: 100%; + background: $backgroundColorEmphasize; + color: $textColorLight; + font-family: inherit; + font-size: $fontSize; + padding: 0.25rem; + border: 0.05rem solid $borderColor; + box-sizing: border-box; + + &:focus { + outline: none; + } +} + +textarea { + font-family: $fontFamilyTextarea; + box-sizing: border-box; + display: block; + resize: vertical; + min-height: 15rem; + line-height: 1.2rem; + padding: 0.5rem; + -webkit-hyphens: none; + hyphens: none; + cursor: auto; +} + +input { + &[type="submit"] { + text-transform: uppercase; + border-radius: 0.1rem; + } +} + +label { + text-transform: uppercase; + font-weight: normal; + + &:after { + content: ":"; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form buttons +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#insert-button, #update-button, #delete-button { + color: $formButtonTextColor; + border: 0.05rem solid $formButtonBorderColor; +} + +#insert-button { + background: $insertButtonBackgroundColor; + + &:active, &:focus { + background: darken($insertButtonBackgroundColor, 10%) + } +} + +#update-button { + background: $updateButtonBackgroundColor; + + &:active, &:focus { + background: darken($updateButtonBackgroundColor, 10%) + } +} + +#delete-button { + background: $deleteButtonBackgroundColor; + + &:active, &:focus { + background: darken($deleteButtonBackgroundColor, 10%) + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Form message list +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#message-list { + margin: 0; + padding: 0.5rem; + list-style: none; + background: $messageListBackgroundColor; + color: $messageListTextColor; + font-size: $fontSizeSmall; + + &-wrapper { + clear: both; + margin-bottom: 0.5rem; + border: 0.1rem solid darken($messageListBackgroundColor, 10%); + } + + code { + color: inherit; + font-weight: bold; + } +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Search form +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +#search-form { + margin-bottom: 1rem; +} + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Import other files +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +@import "responsive"; +@import "fontello"; +@import "fonts"; diff --git a/theme/admin/static/css/import/_variables.scss b/theme/admin/static/css/import/_variables.scss new file mode 100644 index 0000000..70a8424 --- /dev/null +++ b/theme/admin/static/css/import/_variables.scss @@ -0,0 +1,31 @@ +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Line height +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$lineHeight: 1.2rem; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Font families +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$fontFamily: "Ruda", "sans-serif"; +$fontFamilyTextarea: "Kadwa", "sans-serif"; +$fontFamilyMonospaced: "monospace"; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Text font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$fontSize: 0.7rem; +$fontSizeSmall: $fontSize - 0.1rem; +$fontSizeLarge: $fontSize + 0.1rem; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Heading font sizes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$fontSizeH1: 0.80rem; +$fontSizeH2: 0.70rem; +$fontSizeH3: 0.65rem; + +/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# Content widths +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +$contentWidth: 50rem; +$contentWidthWide: 90rem; diff --git a/theme/admin/static/font/fontello.json b/theme/admin/static/font/fontello.json new file mode 100644 index 0000000..1af78d5 --- /dev/null +++ b/theme/admin/static/font/fontello.json @@ -0,0 +1,508 @@ +{ + "name": "", + "css_prefix_text": "fa-", + "css_use_suffix": false, + "hinting": true, + "units_per_em": 1000, + "ascent": 850, + "glyphs": [ + { + "uid": "7432077e6a2d6aa19984ca821bb6bbda", + "css": "bug", + "code": 61832, + "src": "fontawesome" + }, + { + "uid": "f2aa28a2548ed3d2be718d087b65ee21", + "css": "key", + "code": 61572, + "src": "fontawesome" + }, + { + "uid": "0ddd3e8201ccc7d41f7b7c9d27eca6c1", + "css": "link", + "code": 61633, + "src": "fontawesome" + }, + { + "uid": "02cca871bb69da75e8ee286b7055832c", + "css": "bold", + "code": 61490, + "src": "fontawesome" + }, + { + "uid": "7034e4d22866af82bef811f52fb1ba46", + "css": "code", + "code": 61729, + "src": "fontawesome" + }, + { + "uid": "8b80d36d4ef43889db10bc1f0dc9a862", + "css": "user", + "code": 61447, + "src": "fontawesome" + }, + { + "uid": "9755f76110ae4d12ac5f9466c9152031", + "css": "book", + "code": 61485, + "src": "fontawesome" + }, + { + "uid": "a8cb1c217f02b073db3670c061cc54d2", + "css": "italic", + "code": 61491, + "src": "fontawesome" + }, + { + "uid": "0c708edd8fae2376b3370aa56d40cf9e", + "css": "header", + "code": 61916, + "src": "fontawesome" + }, + { + "uid": "f48ae54adfb27d8ada53d0fd9e34ee10", + "css": "trash-o", + "code": 61460, + "src": "fontawesome" + }, + { + "uid": "3a00327e61b997b58518bd43ed83c3df", + "css": "sign-in", + "code": 61584, + "src": "fontawesome" + }, + { + "uid": "598a5f2bcf3521d1615de8e1881ccd17", + "css": "clock-o", + "code": 61463, + "src": "fontawesome" + }, + { + "uid": "a2a74f5e7b7d9ba054897d8c795a326a", + "css": "list-ul", + "code": 61642, + "src": "fontawesome" + }, + { + "uid": "f6766a8b042c2453a4e153af03294383", + "css": "list-ol", + "code": 61643, + "src": "fontawesome" + }, + { + "uid": "347c38a8b96a509270fdcabc951e7571", + "css": "database", + "code": 61888, + "src": "fontawesome" + }, + { + "uid": "4fc9b8c122d1b5ca3df42a104a655e8b", + "css": "language", + "code": 61867, + "src": "fontawesome" + }, + { + "uid": "0d20938846444af8deb1920dc85a29fb", + "css": "sign-out", + "code": 61579, + "src": "fontawesome" + }, + { + "uid": "0bda4bc779d4c32623dec2e43bd67ee8", + "css": "dashboard", + "code": 61668, + "src": "fontawesome" + }, + { + "uid": "381da2c2f7fd51f8de877c044d7f439d", + "css": "picture-o", + "code": 61502, + "src": "fontawesome" + }, + { + "uid": "bf882b30900da12fca090d9796bc3030", + "css": "envelope-o", + "code": 61443, + "src": "fontawesome" + }, + { + "uid": "555ef8c86832e686fef85f7af2eb7cde", + "css": "arrow-left", + "code": 61536, + "src": "fontawesome" + }, + { + "uid": "d745d7c05b94e609decabade2cae12cb", + "css": "quote-right", + "code": 61710, + "src": "fontawesome" + }, + { + "uid": "f9c8ea86275ca16128235c6452b67b8e", + "css": "user-secret", + "code": 61979, + "src": "fontawesome" + }, + { + "uid": "5408be43f7c42bccee419c6be53fdef5", + "css": "file-text-o", + "code": 61686, + "src": "fontawesome" + }, + { + "uid": "032bd8bbd70adf90ead98b6813bfe446", + "css": "newspaper-o", + "code": 61930, + "src": "fontawesome" + }, + { + "uid": "ad6b3fbb5324abe71a9c0b6609cbb9f1", + "css": "arrow-right", + "code": 61537, + "src": "fontawesome" + }, + { + "uid": "e15f0d620a7897e2035c18c80142f6d9", + "css": "external-link", + "code": 61582, + "src": "fontawesome" + }, + { + "uid": "0ece9a12de796b8411f868d582bee678", + "css": "github-square", + "code": 61586, + "src": "fontawesome" + }, + { + "uid": "41087bc74d4b20b55059c60a33bf4008", + "css": "pencil-square-o", + "code": 61508, + "src": "fontawesome" + }, + { + "uid": "c76b7947c957c9b78b11741173c8349b", + "css": "exclamation-triangle", + "code": 61553, + "src": "fontawesome" + }, + { + "uid": "9dd9e835aebe1060ba7190ad2b2ed951", + "css": "search", + "code": 61442, + "src": "fontawesome" + }, + { + "uid": "474656633f79ea2f1dad59ff63f6bf07", + "css": "star", + "code": 59415, + "src": "fontawesome" + }, + { + "uid": "d17030afaecc1e1c22349b99f3c4992a", + "css": "star-empty", + "code": 59416, + "src": "fontawesome" + }, + { + "uid": "31972e4e9d080eaa796290349ae6c1fd", + "css": "users", + "code": 59395, + "src": "fontawesome" + }, + { + "uid": "12f4ece88e46abd864e40b35e05b11cd", + "css": "ok", + "code": 59419, + "src": "fontawesome" + }, + { + "uid": "0d6ab6194c0eddda2b8c9cedf2ab248e", + "css": "attach", + "code": 59422, + "src": "fontawesome" + }, + { + "uid": "c5fd349cbd3d23e4ade333789c29c729", + "css": "eye", + "code": 59418, + "src": "fontawesome" + }, + { + "uid": "7fd683b2c518ceb9e5fa6757f2276faa", + "css": "eye-off", + "code": 59427, + "src": "fontawesome" + }, + { + "uid": "3db5347bd219f3bce6025780f5d9ef45", + "css": "tag", + "code": 59413, + "src": "fontawesome" + }, + { + "uid": "a3f89e106175a5c5c4e9738870b12e55", + "css": "tags", + "code": 59414, + "src": "fontawesome" + }, + { + "uid": "ab95e1351ebaec5850101097cbf7097f", + "css": "quote-left", + "code": 61709, + "src": "fontawesome" + }, + { + "uid": "d35a1d35efeb784d1dc9ac18b9b6c2b6", + "css": "pencil", + "code": 59392, + "src": "fontawesome" + }, + { + "uid": "ecb97add13804c190456025e43ec003b", + "css": "keyboard", + "code": 61724, + "src": "fontawesome" + }, + { + "uid": "85528017f1e6053b2253785c31047f44", + "css": "comment", + "code": 59393, + "src": "fontawesome" + }, + { + "uid": "dcedf50ab1ede3283d7a6c70e2fe32f3", + "css": "chat", + "code": 59394, + "src": "fontawesome" + }, + { + "uid": "31951fbb9820ed0690f675b3d495c8da", + "css": "chat-empty", + "code": 61670, + "src": "fontawesome" + }, + { + "uid": "9c1376672bb4f1ed616fdd78a23667e9", + "css": "comment-empty", + "code": 61669, + "src": "fontawesome" + }, + { + "uid": "00391fac5d419345ffcccd95b6f76263", + "css": "attention-alt", + "code": 61738, + "src": "fontawesome" + }, + { + "uid": "c95735c17a10af81448c7fed98a04546", + "css": "folder-open", + "code": 59428, + "src": "fontawesome" + }, + { + "uid": "559647a6f430b3aeadbecd67194451dd", + "css": "menu", + "code": 61641, + "src": "fontawesome" + }, + { + "uid": "e99461abfef3923546da8d745372c995", + "css": "cog", + "code": 59423, + "src": "fontawesome" + }, + { + "uid": "5bb103cd29de77e0e06a52638527b575", + "css": "wrench", + "code": 59429, + "src": "fontawesome" + }, + { + "uid": "1c4068ed75209e21af36017df8871802", + "css": "arrow-down", + "code": 59406, + "src": "fontawesome" + }, + { + "uid": "95376bf082bfec6ce06ea1cda7bd7ead", + "css": "arrow-up", + "code": 59409, + "src": "fontawesome" + }, + { + "uid": "a73c5deb486c8d66249811642e5d719a", + "css": "arrows-cw", + "code": 59411, + "src": "fontawesome" + }, + { + "uid": "aa035df0908c4665c269b7b09a5596f3", + "css": "sun", + "code": 61829, + "src": "fontawesome" + }, + { + "uid": "567e3e257f2cc8fba2c12bf691c9f2d8", + "css": "moon", + "code": 61830, + "src": "fontawesome" + }, + { + "uid": "2a4e6c99b732a57da40e32fa2a7800a4", + "css": "toggle-off", + "code": 61956, + "src": "fontawesome" + }, + { + "uid": "3256ef03b16e7ab51235bc7378b53bb5", + "css": "toggle-on", + "code": 61957, + "src": "fontawesome" + }, + { + "uid": "dd6c6b221a1088ff8a9b9cd32d0b3dd5", + "css": "check", + "code": 59425, + "src": "fontawesome" + }, + { + "uid": "4b900d04e8ab8c82f080c1cfbac5772c", + "css": "uncheck", + "code": 61590, + "src": "fontawesome" + }, + { + "uid": "f4445feb55521283572ee88bc304f928", + "css": "floppy", + "code": 59426, + "src": "fontawesome" + }, + { + "uid": "0cd2582b8c93719d066ee0affd02ac78", + "css": "sort-up", + "code": 61792, + "src": "fontawesome" + }, + { + "uid": "27b13eff5eb0ca15e01a6e65ffe6eeec", + "css": "sort-down", + "code": 61793, + "src": "fontawesome" + }, + { + "uid": "3ed68ae14e9cde775121954242a412b2", + "css": "sort-name-up", + "code": 61789, + "src": "fontawesome" + }, + { + "uid": "6586267200a42008a9fc0a1bf7ac06c7", + "css": "sort-name-down", + "code": 61790, + "src": "fontawesome" + }, + { + "uid": "3a7b6876c1817ce3b801b86c04a9d0af", + "css": "sort-number-up", + "code": 61794, + "src": "fontawesome" + }, + { + "uid": "b04fc30546f597a7e0a14715e6fc81ff", + "css": "sort-number-down", + "code": 61795, + "src": "fontawesome" + }, + { + "uid": "d59ff824282fc6edaeca991deab522aa", + "css": "server", + "code": 62003, + "src": "fontawesome" + }, + { + "uid": "33194d4a025fbf12baca54579afe4c8e", + "css": "at", + "code": 61946, + "src": "fontawesome" + }, + { + "uid": "53c28626072159c49f33b71d67138ad9", + "css": "commenting", + "code": 62074, + "src": "fontawesome" + }, + { + "uid": "9cc990bbcac7aa8504078b3f49df79b1", + "css": "commenting-o", + "code": 62075, + "src": "fontawesome" + }, + { + "uid": "3fce1eca43f917c8f23e532749abae5d", + "css": "user-circle-o", + "code": 62142, + "src": "fontawesome" + }, + { + "uid": "5211af474d3a9848f67f945e2ccaf143", + "css": "cancel", + "code": 59396, + "src": "fontawesome" + }, + { + "uid": "44e04715aecbca7f266a17d5a7863c68", + "css": "plus", + "code": 59397, + "src": "fontawesome" + }, + { + "uid": "e82cedfa1d5f15b00c5a81c9bd731ea2", + "css": "info-circled", + "code": 59420, + "src": "fontawesome" + }, + { + "uid": "d7271d490b71df4311e32cdacae8b331", + "css": "home", + "code": 59421, + "src": "fontawesome" + }, + { + "uid": "04ff8d6592fe548b332b27ed87ce397a", + "css": "box", + "code": 61831, + "src": "fontawesome" + }, + { + "uid": "e80ae555c1413a4ec18b33fb348b4049", + "css": "file-archive", + "code": 61894, + "src": "fontawesome" + }, + { + "uid": "d862a10e1448589215be19702f98f2c1", + "css": "smile", + "code": 61720, + "src": "fontawesome" + }, + { + "uid": "06ddc67d609c477cd5524a7238d7850d", + "css": "frown", + "code": 61721, + "src": "fontawesome" + }, + { + "uid": "2c5055a9c9723725f49f0593a08535af", + "css": "meh", + "code": 61722, + "src": "fontawesome" + }, + { + "uid": "48b87105bd38c20315f1b705b8c7b38c", + "css": "list", + "code": 59403, + "src": "fontawesome" + } + ] +} diff --git a/theme/admin/static/font/fontello.woff2 b/theme/admin/static/font/fontello.woff2 new file mode 100644 index 0000000..c62227f Binary files /dev/null and b/theme/admin/static/font/fontello.woff2 differ diff --git a/theme/admin/static/font/kadwa-n-400.woff2 b/theme/admin/static/font/kadwa-n-400.woff2 new file mode 100644 index 0000000..1566426 Binary files /dev/null and b/theme/admin/static/font/kadwa-n-400.woff2 differ diff --git a/theme/admin/static/font/ruda-n-400.woff2 b/theme/admin/static/font/ruda-n-400.woff2 new file mode 100644 index 0000000..6435a0d Binary files /dev/null and b/theme/admin/static/font/ruda-n-400.woff2 differ diff --git a/theme/admin/static/font/ruda-n-700.woff2 b/theme/admin/static/font/ruda-n-700.woff2 new file mode 100644 index 0000000..0066431 Binary files /dev/null and b/theme/admin/static/font/ruda-n-700.woff2 differ diff --git a/theme/admin/static/icon-public-domain.svg b/theme/admin/static/icon-public-domain.svg new file mode 100644 index 0000000..88f7227 --- /dev/null +++ b/theme/admin/static/icon-public-domain.svg @@ -0,0 +1 @@ + diff --git a/theme/admin/static/img/noise-bright.png b/theme/admin/static/img/noise-bright.png new file mode 100644 index 0000000..a9356b3 Binary files /dev/null and b/theme/admin/static/img/noise-bright.png differ diff --git a/theme/admin/static/img/noise-dark.png b/theme/admin/static/img/noise-dark.png new file mode 100644 index 0000000..f0ddc0d Binary files /dev/null and b/theme/admin/static/img/noise-dark.png differ diff --git a/theme/admin/static/main.js b/theme/admin/static/main.js new file mode 100644 index 0000000..94fc591 --- /dev/null +++ b/theme/admin/static/main.js @@ -0,0 +1,191 @@ +//============================================================================== +// Elements which contains the location of the previous and next site +//============================================================================== +const prev = document.getElementById("prev-site"); +const next = document.getElementById("next-site"); + +//============================================================================== +// Handle arrow keys and change the location to the desired direction +//============================================================================== +document.addEventListener("keyup", function(e) { + if(!e.ctrlKey && !e.shiftKey && !e.altKey) { + (e.keyCode === 37 && prev) && (window.location.href = prev.getAttribute("href")); + (e.keyCode === 39 && next) && (window.location.href = next.getAttribute("href")); + } +}, false); + +//============================================================================== +// Markdown tags to replace +//============================================================================== +const markdownTags = { + "bold": ["**", "**"], + "italic": ["*", "*"], + "heading": ["## ", "\n"], + "link": ["[", "](href)"], + "image": ["![", "](href)"], + "code": ["\n~~~\n", "\n~~~\n"], + "quote": ["\n> ", ""], + "list_ul": ["* ", ""], + "list_ol": ["1. ", ""] +}; + +//============================================================================== +// Timeout function for delayed execution of code +//============================================================================== +function delayed(callback) { + window.setTimeout(callback, 20); +} + +//============================================================================== +// Set caret position in editor +//============================================================================== +function setCaretPosition(position) { + document.getElementById("content-editor").setSelectionRange(position, position); + document.getElementById("content-editor").focus(); +} + +//============================================================================== +// Insert emoticon after cursor in editor +//============================================================================== +function insertEmoticon(target, emoticon) { + const selectionStart = target.selectionStart; + const selectionEnd = target.selectionEnd; + + const content = target.value; + target.value = content.slice(0, selectionStart) + emoticon + content.slice(selectionEnd); + + delayed(function() { + setCaretPosition(selectionStart + emoticon.length); + }); +} + +//============================================================================== +// Insert markdown around text in editor +//============================================================================== +function insertMarkdown(target, markdown) { + const selectionStart = target.selectionStart; + const selectionEnd = target.selectionEnd; + + const selectedText = target.value.substring(selectionStart, selectionEnd); + + const content = target.value; + target.value = content.slice(0, selectionStart) + markdownTags[markdown][0] + selectedText + markdownTags[markdown][1] + content.slice(selectionEnd); + + delayed(function() { + setCaretPosition(selectionStart + markdownTags[markdown][0].length + selectedText.length + markdownTags[markdown][1].length); + }); +} + +//============================================================================== +// Keep server-side session active if the user is writing a long text +//============================================================================== +setInterval(function() { + const Request = new XMLHttpRequest(); + Request.open("HEAD", "", true); + Request.send(); +}, 300000); + +//============================================================================== +// Confirmation message for delete button +//============================================================================== +if(document.getElementById("delete-button")) { + document.getElementById("delete-button").onclick = function(e) { + return confirm(e.target.getAttribute("data-text")); + }; +} + +//============================================================================== +// Insert or remove tab indent in editor if [+] is pressed +//============================================================================== +(function() { + if(document.getElementById("content-editor")) { + const element = document.getElementById("content-editor"); + element.addEventListener("keydown", function(e) { + if(e.keyCode === 9 && !e.ctrlKey) { + const selectionStart = element.selectionStart; + const selectionEnd = element.selectionEnd; + + const content = element.value; + + if(e.shiftKey) { + if(content.substring(selectionStart, selectionStart -1) === "\t") { + element.value = content.substring(0, selectionStart - 1) + content.substring(selectionEnd); + setCaretPosition(selectionStart - 1); + } + } + + else { + element.value = content.substring(0, selectionStart) + "\t" + content.substring(selectionEnd); + setCaretPosition(selectionStart + 1); + } + + e.preventDefault(); + } + }, false); + } +})(); + +//============================================================================== +// Emoticon button list +//============================================================================== +(function() { + if(document.getElementById("emoticon-list")) { + const list = document.getElementById("emoticon-list"); + const node = document.getElementById("content-editor"); + const items = list.getElementsByTagName("li"); + + for(let i = 0; i < items.length; ++i) { + items[i].onmousedown = function(e) { + insertEmoticon(node, e.target.getAttribute("data-emoticon")); + }; + } + } +})(); + +//============================================================================== +// Markdown button list +//============================================================================== +(function() { + if(document.getElementById("markdown-list")) { + const list = document.getElementById("markdown-list"); + const node = document.getElementById("content-editor"); + const items = list.getElementsByTagName("li"); + + for(let i = 0; i < items.length; ++i) { + items[i].onmousedown = function(e) { + insertMarkdown(node, e.target.getAttribute("data-markdown")); + }; + } + } +})(); + +//============================================================================== +// Detect unsaved changes in content editor +//============================================================================== +(function() { + if(document.getElementById("content-editor")) { + const editor = document.getElementById("content-editor"); + const initialValue = editor.value; + + function showConfirmationPrompt(e) { + if(editor.value !== initialValue) { + e.returnValue = ''; + e.preventDefault(); + } + } + + window.addEventListener('beforeunload', showConfirmationPrompt); + + const buttons = []; + buttons.push(document.getElementById('insert-button')); + buttons.push(document.getElementById('update-button')); + + for(let i = 0; i < buttons.length; ++i) { + if(buttons[i] !== null) { + buttons[i].addEventListener('click', function() { + window.removeEventListener('beforeunload', showConfirmationPrompt); + }); + } + } + } +})(); -- cgit v1.2.3