aboutsummaryrefslogtreecommitdiff
path: root/htdocs/scss/app
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2022-07-10 01:30:05 +0300
committerEvgeny Zinoviev <me@ch1p.io>2022-07-10 23:53:02 +0300
commit1c524efbf7da91cb99bb4516feb514071e938495 (patch)
treee1fced0104749014db154f5d3b29881e705bfafc /htdocs/scss/app
parent8979719a1af4bc0712407db7f95704f645f261a3 (diff)
dark theme support
Diffstat (limited to 'htdocs/scss/app')
-rw-r--r--htdocs/scss/app/blog.scss385
-rw-r--r--htdocs/scss/app/common.scss289
-rw-r--r--htdocs/scss/app/form.scss59
-rw-r--r--htdocs/scss/app/head.scss157
-rw-r--r--htdocs/scss/app/hljs.scss1
-rw-r--r--htdocs/scss/app/mobile.scss41
-rw-r--r--htdocs/scss/app/pages.scss14
7 files changed, 946 insertions, 0 deletions
diff --git a/htdocs/scss/app/blog.scss b/htdocs/scss/app/blog.scss
new file mode 100644
index 0000000..53ec7e4
--- /dev/null
+++ b/htdocs/scss/app/blog.scss
@@ -0,0 +1,385 @@
+@import '../vars';
+
+.blog-write-link-wrap {
+ margin-bottom: $base-padding;
+}
+.blog-write-table {
+ table-layout: fixed;
+ border-collapse: collapse;
+ border: 0;
+ width: 100%;
+
+ > tbody > tr > td {
+ text-align: left;
+ vertical-align: top;
+ }
+ > tbody > tr > td:first-child {
+ padding-right: 8px;
+ width: 45%;
+ }
+ > tbody > tr > td:last-child {
+ padding-left: 8px;
+ }
+}
+
+.blog-write-form {
+ .form-field-input {
+ width: 100%;
+ }
+ textarea.form-field-input {
+ height: 400px;
+ font-family: $ffMono;
+ font-size: 12px;
+ }
+ textarea.form-field-input.nowrap {
+ white-space: pre;
+ overflow-wrap: normal;
+ }
+}
+.blog-write-options-table {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: fixed;
+
+ td {
+ padding-top: 12px;
+ }
+ td:nth-child(1) {
+ width: 70%;
+ }
+ td:nth-child(2) {
+ width: 30%;
+ padding-left: 10px;
+ }
+ tr:first-child td {
+ padding-top: 0px;
+ }
+ button[type="submit"] {
+ margin-left: 3px;
+ }
+}
+
+.blog-write-form-toggle-link {
+ margin-top: 3px;
+ display: inline-block;
+}
+
+.blog-upload-form {
+ padding-bottom: $base-padding;
+}
+
+.blog-upload-list {}
+.blog-upload-item {
+ border-top: 1px $border-color solid;
+ padding: 10px 0;
+}
+.blog-upload-item-actions {
+ float: right;
+}
+.blog-upload-item-name {
+ font-weight: bold;
+ margin-bottom: 2px;
+}
+.blog-upload-item-info {
+ color: $grey;
+ font-size: $fs - 2px;
+}
+.blog-upload-item-note {
+ padding: 0 0 4px;
+}
+.blog-upload-item-md {
+ margin-top: 3px;
+}
+
+.blog-post-title {
+ margin: 0 0 16px;
+}
+.blog-post-title h1 {
+ font-size: 22px;
+ font-weight: bold;
+ padding: 0;
+ margin: 0;
+}
+
+.blog-post-date {
+ color: $grey;
+ margin-top: 5px;
+ font-size: $fs - 1px;
+ > a {
+ margin-left: 5px;
+ }
+}
+
+.blog-post-tags {
+ margin-top: 16px;
+ margin-bottom: -1px;
+}
+.blog-post-tags > a {
+ display: block;
+ float: left;
+ font-size: $fs - 1px;
+ margin-right: 8px;
+ cursor: pointer;
+}
+.blog-post-tags > a:last-child {
+ margin-right: 0;
+}
+.blog-post-tags > a > span {
+ opacity: 0.5;
+}
+
+.blog-post-text {}
+.blog-post-text {
+ li {
+ margin: 13px 0;
+ }
+
+ p {
+ margin-top: 13px;
+ margin-bottom: 13px;
+ }
+ p:first-child {
+ margin-top: 0;
+ }
+ p:last-child {
+ margin-bottom: 0;
+ }
+
+ pre {
+ background-color: $code-block-bg;
+ font-family: $ffMono;
+ //font-size: $fsMono;
+ overflow: auto;
+ @include radius(3px);
+ }
+
+ code {
+ background-color: $inline-code-block-bg;
+ font-family: $ffMono;
+ font-size: $fsMono;
+ padding: 3px 5px;
+ @include radius(3px);
+ }
+
+ pre code {
+ display: block;
+ padding: 12px;
+ line-height: 145%;
+ background-color: $code-block-bg;
+
+ span.term-prompt {
+ color: $light-grey;
+ @include user-select(none);
+ }
+ }
+
+ blockquote {
+ border-left: 3px #e0e0e0 solid;
+ margin-left: 0;
+ padding: 5px 0 5px 12px;
+ color: $grey;
+ }
+
+ table.table-100 {
+ border-collapse: collapse;
+ border: 0;
+ margin: 0;
+ width: 100%;
+ table-layout: fixed;
+ }
+ table.table-100 td {
+ padding: 0;
+ border: 0;
+ vertical-align: top;
+ text-align: left;
+ padding: 0 4px;
+ }
+ table.table-100 td:first-child {
+ padding-left: 0;
+ }
+ table.table-100 td:last-child {
+ padding-right: 0;
+ }
+ td > pre:first-child {
+ margin-top: 0;
+ }
+ td > pre:last-child {
+ margin-bottom: 0;
+ }
+
+ h1 {
+ margin: 40px 0 16px;
+ font-weight: 600;
+ font-size: 30px;
+ border-bottom: 1px $border-color solid;
+ padding-bottom: 8px;
+ }
+
+ h2 {
+ margin: 35px 0 16px;
+ font-weight: 500;
+ font-size: 25px;
+ border-bottom: 1px $border-color solid;
+ padding-bottom: 6px;
+ }
+
+ h3 {
+ margin: 27px 0 16px;
+ font-size: 24px;
+ font-weight: 500;
+ }
+
+ h4 {
+ font-size: 18px;
+ margin: 24px 0 16px;
+ }
+
+ h5 {
+ font-size: 15px;
+ margin: 24px 0 16px;
+ }
+
+ h6 {
+ font-size: 13px;
+ margin: 24px 0 16px;
+ color: #666;
+ }
+
+ h3:first-child,
+ h4:first-child,
+ h5:first-child,
+ h6:first-child {
+ margin-top: 0;
+ }
+ h1:first-child,
+ h2:first-child {
+ margin-top: 5px;
+ }
+
+ hr {
+ height: 1px;
+ border: 0;
+ background: $border-color;
+ margin: 17px 0;
+ }
+}
+.blog-post-comments {
+ margin-top: $base-padding;
+ padding: 12px 15px;
+ border: 1px $border-color solid;
+ @include radius(3px);
+}
+.blog-post-comments img {
+ vertical-align: middle;
+ position: relative;
+ top: -1px;
+ margin-left: 2px;
+}
+
+$blog-tags-width: 175px;
+
+.index-blog-block {
+ margin-top: 23px;
+}
+
+.blog-list {}
+.blog-list.withtags {
+ margin-right: $blog-tags-width + $base-padding*2;
+}
+.blog-list-title {
+ font-size: 22px;
+ margin-bottom: 15px;
+ > span {
+ margin-left: 2px;
+ > a {
+ font-size: 16px;
+ margin-left: 2px;
+ }
+ }
+}
+.blog-list-table-wrap {
+ padding: 5px 0;
+}
+.blog-list-table {
+ border-collapse: collapse;
+}
+.blog-list-table td {
+ vertical-align: top;
+ padding: 0 0 13px;
+}
+.blog-list-table tr:last-child td {
+ padding-bottom: 0;
+}
+td.blog-item-date-cell {
+ width: 1px;
+ white-space: nowrap;
+ text-align: right;
+ padding-right: 10px;
+}
+.blog-item-date {
+ color: $grey;
+ //text-transform: lowercase;
+}
+td.blog-item-title-cell {
+ text-align: left;
+}
+.blog-item-title {
+ //font-weight: bold;
+}
+.blog-item-row {
+ font-size: $fs;
+ line-height: 140%;
+}
+.blog-item-row.ishidden a.blog-item-title {
+ color: $fg;
+}
+.blog-item-row-year {
+ td {
+ padding-top: 10px;
+ text-align: right;
+ font-size: 20px;
+ letter-spacing: -0.5px;
+ }
+ &:first-child td {
+ padding-top: 0;
+ }
+}
+
+/*
+a.blog-item-view-all-link {
+ display: inline-block;
+ padding: 4px 17px;
+ @include radius(5px);
+ background-color: #f4f4f4;
+ color: #555;
+ margin-top: 2px;
+}
+a.blog-item-view-all-link:hover {
+ text-decoration: none;
+ background-color: #ededed;
+}
+*/
+
+.blog-tags {
+ float: right;
+ width: $blog-tags-width;
+ padding-left: $base-padding - 10px;
+ border-left: 1px $border-color solid;
+}
+.blog-tags-title {
+ margin-bottom: 15px;
+ font-size: 22px;
+ padding: 0 7px;
+}
+.blog-tag-item {
+ padding: 6px 10px;
+ font-size: $fs - 1px;
+}
+.blog-tag-item > a {
+ color: $fg;
+}
+.blog-tag-item-count {
+ color: #aaa;
+ margin-left: 6px;
+ text-decoration: none !important;
+}
diff --git a/htdocs/scss/app/common.scss b/htdocs/scss/app/common.scss
new file mode 100644
index 0000000..b9c5959
--- /dev/null
+++ b/htdocs/scss/app/common.scss
@@ -0,0 +1,289 @@
+@import "../vars";
+
+.clearfix:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+
+html, body {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ background-color: $bg;
+ color: $fg;
+ height: 100%;
+ min-height: 100%;
+}
+body {
+ font-family: $ff;
+ font-size: $fs;
+}
+
+.base-width {
+ max-width: $base-width;
+ margin: 0 auto;
+ position: relative;
+}
+
+body.full-width .base-width {
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+input[type="text"],
+input[type="password"],
+textarea {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ box-sizing: border-box;
+ border: 1px $input-border solid;
+ border-radius: 0;
+ background-color: $input-bg;
+ color: $fg;
+ font-family: $ff;
+ font-size: $fs;
+ padding: 6px;
+ outline: none;
+ @include radius(3px);
+
+ &:focus {
+ border-color: $input-border-focused;
+ }
+}
+
+textarea {
+ resize: vertical;
+}
+
+//input[type="checkbox"] {
+// margin-left: 0;
+//}
+
+//button {
+// border-radius: 2px;
+// background-color: $light-bg;
+// color: $fg;
+// padding: 7px 12px;
+// border: none;
+// /*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);*/
+// font-family: $ff;
+// font-size: $fs - 1px;
+// outline: none;
+// cursor: pointer;
+// position: relative;
+//}
+//button:hover {
+// box-shadow: 0 1px 9px rgba(0, 0, 0, 0.2);
+//}
+//button:active {
+// top: 1px;
+//}
+
+a {
+ text-decoration: none;
+ color: $link-color;
+ outline: none;
+}
+a:hover {
+ text-decoration: underline;
+}
+
+p, p code {
+ line-height: 150%;
+}
+
+.unicode { font-family: sans-serif; }
+
+.ff_ms { font-family: $ffMono }
+.fl_r { float: right }
+.fl_l { float: left }
+.pos_rel { position: relative }
+.pos_abs { position: absolute }
+.pos_fxd { position: fixed }
+
+.page-content {
+ padding: 0 $side-padding;
+}
+.page-content-inner {
+ padding: $base-padding 0;
+}
+
+
+table.contacts {
+ border: 0;
+ border-collapse: collapse;
+ margin: 8px auto 0;
+ //width: 100%;
+ //table-layout: fixed;
+}
+table.contacts td {
+ white-space: nowrap;
+ padding-bottom: 15px;
+ vertical-align: top;
+}
+table.contacts td.label {
+ text-align: right;
+ width: 30%;
+ color: $dark-grey;
+}
+table.contacts td.value {
+ text-align: left;
+ padding-left: 8px;
+}
+table.contacts td.value span {
+ background: $inline-code-block-bg;
+ padding: 3px 7px 4px;
+ border-radius: 3px;
+ color: $fg;
+ font-family: $ffMono;
+ font-size: $fs - 1px;
+}
+table.contacts td b {
+ font-weight: 600;
+}
+table.contacts td pre {
+ padding: 0;
+ margin: 0;
+ font-size: 12px;
+}
+
+table.contacts div.note {
+ font-size: $fs - 3px;
+ padding-top: 2px;
+ color: $dark-grey;
+ > a {
+ color: $dark-grey;
+ border-bottom: 1px $border-color solid;
+ &:hover {
+ text-decoration: none;
+ color: $link-color;
+ border-bottom-color: $link-color;
+ }
+ }
+}
+
+.pt {
+ margin: 5px 0 20px;
+ color: $dark-fg;
+ padding-bottom: 7px;
+ border-bottom: 2px rgba(255, 255, 255, 0.12) solid;
+}
+.pt h3 {
+ margin: 0;
+ display: inline-block;
+ font-weight: bold;
+ font-size: $fs;
+ color: $fg;
+}
+.pt h3:not(:first-child) {
+ margin-left: 5px;
+}
+.pt a {
+ margin-right: 5px;
+}
+.pt a:not(:first-child) {
+ margin-left: 5px;
+}
+.pt a, .pt h3 {
+ position: relative;
+ top: 1px;
+}
+.pt_r { margin-top: 5px }
+
+.empty {
+ text-align: center;
+ padding: 40px 20px;
+ color: $dark-fg;
+ @include radius(3px);
+ background-color: #f7f7f7;
+}
+
+.contact-img {
+ display: inline-block;
+ width: 77px;
+ height: 12px;
+ background: transparent url(/img/contact.gif?1) no-repeat;
+ background-size: 77px 12px;
+}
+@media (-o-min-device-pixel-ratio:3/2), (-webkit-min-device-pixel-ratio:1.5), (min--moz-device-pixel-ratio:1.5), (min-resolution:1.5dppx) {
+.contact-img {
+ background-image: url(/img/contact@2x.gif?1);
+}
+}
+
+.md-file-attach {
+ padding: 3px 0;
+}
+.md-file-attach-icon {
+ width: 14px;
+ height: 14px;
+ background: transparent url(/img/attachment.svg) no-repeat center center;
+ background-size: 14px 14px;
+ display: inline-block;
+ margin-right: 5px;
+ position: relative;
+ top: 1px;
+}
+.md-file-attach > a {
+ //font-weight: bold;
+}
+.md-file-attach-size {
+ color: $grey;
+ margin-left: 2px;
+}
+.md-file-attach-note {
+ color: $fg;
+ margin-left: 2px;
+}
+
+.md-image {
+ padding: 3px 0;
+ line-height: 0;
+ max-width: 100%;
+}
+.md-images {
+ margin-bottom: -8px;
+ padding: 3px 0;
+ max-width: 100%;
+}
+.md-images .md-image {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+.md-images > span {
+ display: block;
+ float: left;
+ margin: 0 8px 8px 0;
+ max-width: 100%;
+}
+.md-image.align-center { text-align: center; }
+.md-image.align-left { text-align: left; }
+.md-image.align-right { text-align: right; }
+.md-image-wrap {
+ display: inline-block;
+ max-width: 100%;
+ overflow: hidden;
+}
+.md-image-wrap > a {
+ display: block;
+ max-width: 100%;
+}
+.md-image-note {
+ line-height: 150%;
+ color: $dark-grey;
+ padding: 2px 0 4px;
+}
+
+.md-video video {
+ max-width: 100%;
+}
+
+.language-ascii {
+ line-height: 125% !important;
+}
diff --git a/htdocs/scss/app/form.scss b/htdocs/scss/app/form.scss
new file mode 100644
index 0000000..197732c
--- /dev/null
+++ b/htdocs/scss/app/form.scss
@@ -0,0 +1,59 @@
+@import '../vars';
+
+$form-field-label-width: 120px;
+
+form { display: block; margin: 0; }
+
+.form-layout-h {
+ .form-field-wrap {
+ padding: 8px 0;
+ }
+ .form-field-label {
+ float: left;
+ width: $form-field-label-width;
+ text-align: right;
+ padding: 7px 0 0;
+ }
+ .form-field {
+ margin-left: $form-field-label-width + 10px;
+ }
+}
+
+.form-layout-v {
+ .form-field-wrap {
+ padding: 6px 0;
+ }
+ .form-field-wrap:first-child {
+ padding-top: 0;
+ }
+ .form-field-wrap:last-child {
+ padding-bottom: 0;
+ }
+ .form-field-label {
+ padding: 0 0 4px 4px;
+ font-weight: bold;
+ font-size: 12px;
+ letter-spacing: 0.5px;
+ text-transform: uppercase;
+ color: $grey;
+ }
+ .form-field {
+ //margin-left: $form-field-label-width + 10px;
+ }
+}
+
+.form-error {
+ padding: 10px 13px;
+ margin-bottom: $base-padding;
+ background-color: $error-block-bg;
+ color: $error-block-fg;
+ @include radius(3px);
+}
+
+.form-success {
+ padding: 10px 13px;
+ margin-bottom: $base-padding;
+ background-color: $success-block-bg;
+ color: $success-block-fg;
+ @include radius(3px);
+}
diff --git a/htdocs/scss/app/head.scss b/htdocs/scss/app/head.scss
new file mode 100644
index 0000000..fed30d1
--- /dev/null
+++ b/htdocs/scss/app/head.scss
@@ -0,0 +1,157 @@
+.head {
+ padding: 0 $side-padding;
+}
+.head-inner {
+ //padding: 13px 0;
+ position: relative;
+ border-bottom: 2px $border-color solid;
+}
+.head-logo {
+ padding: 4px 0;
+ font-family: $ffMono;
+ font-size: 15px;
+ display: inline-block;
+ position: absolute;
+ left: 0;
+ background-color: transparent;
+}
+body:not(.theme-changing) .head-logo {
+ @include transition(background-color, 0.03s);
+}
+.head-logo {
+ padding: 16px 0;
+ background-color: $bg;
+}
+.head-logo:after {
+ content: '';
+ display: block;
+ width: 40px;
+ position: absolute;
+ right: -40px;
+ top: 0;
+ bottom: 0;
+ border-left: 8px $bg solid;
+ box-sizing: border-box;
+ background: linear-gradient(to left, rgba($bg, 0) 0%, rgba($bg, 1) 100%); /* W3C */
+}
+.head-logo > a {
+ color: $fg;
+ font-size: 14px;
+}
+.head-logo > a:hover {
+ text-decoration: none;
+}
+.head-logo-enter {
+ background: $code-block-bg;
+ color: $hljs_fg;
+ display: inline;
+ opacity: 0;
+ font-size: 11px;
+ position: relative;
+ padding: 2px 5px;
+ font-weight: normal;
+ vertical-align: middle;
+ top: -1px;
+}
+body:not(.theme-changing) .head-logo-enter {
+ @include transition(opacity, 0.03s);
+}
+.head-logo-enter-icon {
+ width: 12px;
+ height: 7px;
+ display: inline-block;
+ margin-right: 5px;
+ position: relative;
+ top: 1px;
+
+ > svg {
+ path {
+ fill: $hljs_fg;
+ }
+ }
+}
+.head-logo > a:hover .head-logo-enter {
+ opacity: 1;
+}
+.head-logo-path {
+ color: $fg;
+ font-weight: bold;
+ -webkit-font-smoothing: antialiased;
+}
+body:not(.theme-changing) .head-logo-path {
+ @include transition(color, 0.03s);
+}
+.head-logo > a:hover .head-logo-path:not(.alwayshover) {
+ color: $light_grey;
+}
+.head-logo-path:not(.neverhover):hover {
+ color: $fg !important;
+}
+.head-logo-dolsign {
+ color: $head_green_color;
+ font-weight: normal;
+ &.is_root {
+ color: $head_red_color;
+ }
+}
+.head-logo-cd {
+ display: none;
+}
+.head-logo > a:hover .head-logo-cd {
+ display: inline;
+}
+.head-logo-path-mapped {
+ padding: 3px 5px;
+ background: #f1f1f1;
+ pointer-events: none;
+ @include radius(3px);
+ margin: 0 2px;
+}
+
+.head-items {
+ float: right;
+ color: #777; // color of separators
+ //padding: 8px 0;
+}
+a.head-item {
+ color: $fg;
+ font-size: $fs - 1px;
+ display: block;
+ float: left;
+ padding: 16px 0;
+
+ > span {
+ position: relative;
+ padding: 0 12px;
+ border-right: 1px $head-items-separator solid;
+
+ > span {
+ padding: 2px 0;
+
+ > span.moon-icon {
+ position: absolute;
+ left: 0;
+
+ > svg path {
+ fill: $fg;
+ }
+ }
+ }
+ }
+
+ &.is-theme-switcher > span {
+ padding-left: 20px;
+ }
+
+ &:last-child > span {
+ border-right: 0;
+ padding-right: 1px;
+ }
+}
+a.head-item:hover {
+ //color: $link-color;
+ text-decoration: none;
+}
+a.head-item:hover > span > span {
+ border-bottom: 1px $head-items-separator solid;
+} \ No newline at end of file
diff --git a/htdocs/scss/app/hljs.scss b/htdocs/scss/app/hljs.scss
new file mode 100644
index 0000000..913c45e
--- /dev/null
+++ b/htdocs/scss/app/hljs.scss
@@ -0,0 +1 @@
+@import "../hljs/github.css";
diff --git a/htdocs/scss/app/mobile.scss b/htdocs/scss/app/mobile.scss
new file mode 100644
index 0000000..a765e25
--- /dev/null
+++ b/htdocs/scss/app/mobile.scss
@@ -0,0 +1,41 @@
+@import '../vars';
+
+textarea {
+ -webkit-overflow-scrolling: touch;
+}
+
+// header
+.head-logo {
+ position: static;
+ display: block;
+ //padding-bottom: 6px;
+ // not very good fix:
+ overflow: hidden;
+ white-space: nowrap;
+ padding-bottom: 0;
+}
+.head-logo::after {
+ display: none;
+}
+.head-items {
+ float: none;
+}
+a.head-item:hover,
+a.head-item:active {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
+}
+a.head-item:last-child > span {
+ border-right: 0;
+ padding-right: 12px;
+}
+a.head-item:first-child > span {
+ padding-left: 1px;
+}
+
+// blog
+.blog-tags {
+ display: none;
+}
+.blog-list.withtags {
+ margin-right: 0;
+}
diff --git a/htdocs/scss/app/pages.scss b/htdocs/scss/app/pages.scss
new file mode 100644
index 0000000..873a6ae
--- /dev/null
+++ b/htdocs/scss/app/pages.scss
@@ -0,0 +1,14 @@
+.page {
+
+}
+.page-edit-links {
+ display: none;
+ float: right;
+ font-size: 15px;
+ > a {
+ margin-left: 5px;
+ }
+}
+.page-content-inner:hover .page-edit-links {
+ display: block;
+}