分类: 时光

  • 1949-2024建国75周年国庆,祝伟大的祖国生日快乐!

    1949-2024建国75周年国庆,祝伟大的祖国生日快乐!

    国旗

    1949-2024,75年来我们走过弯路、遇到过挫折、经历过迷茫,但不可否认的是,我们的祖国正日益强大。而身为国人,切切实实的感受到这种变化。

    祝伟大的祖国生日快乐!繁荣昌盛!

  • 在Typora中使用“霞骛文楷”字体

    在Typora中使用“霞骛文楷”字体

    一直非常喜欢霞骛文楷的字体,这个站点为了使用这个字体甚至不惜牺牲了加载速度。现在终于找到了在Typora中使用这个字体的方法。

    步骤如下:

    • 在Typora的主题文件夹中新建一个==xiawu.css==文件;
    • 将以下代码复制到文件中保存;
    • 主题选择==xiawu==
    :root {
      /* dark color for background*/
      /* default color */
      --bg-color1: hsl(220, 13%, 18%);
      /* for most panel, context, header, etc */
      --bg-color2: rgb(33, 37, 43);
      /* for toc and table edit panel */
      --bg-color3: rgba(16, 17, 20, 0.5);
      /* for tips */
      --bg-color4: black;
      /* for blockquote, codeblock, input, etc */
      --bg-color5: rgb(29, 31, 35);
      /* light color for text and icon*/
      /* default color */
      --text-color1: hsl(220, 6%, 71%);
      /* for text on panel */
      --text-color2: rgb(220, 220, 220);
      /* for checkbox and radio */
      --text-color3: hsl(192, 6%, 40%);
      /* for tips */
      --text-color4: white;
      /* for focus mode */
      --text-color5: rgba(170, 178, 180, 0.5);
      /* link color */
      --link-color: rgb(197, 202, 210);
      /* table color */
      --table-border-color: rgb(100, 104, 116);
      --table-thead-color: rgb(31, 35, 40);
      --table-bg-color: rgb(40, 44, 52);
      --table-bg-darker-color: rgb(35, 40, 46);
      /* hover color */
      /* default hover background color */
      --hover-bg-color1: rgb(62, 66, 73);
      /* for input item */
      --hover-bg-color2: hsl(220, 9%, 14%);
      /* for button on toc and table edit panel */
      --hover-bg-color3: rgba(62, 66, 73, 0.8);
      /* default hover text color */
      --hover-text-color: white;
      /* active color */
      --active-color: var(--hover-bg-color1);
      /* input color */
      --input-color: rgb(29, 31, 35);
      /* menu divider color */
      /*   --menu-divider-color: rgb(95, 97, 101); */
      --menu-divider-color: hsl(220, 5%, 40%);
      /* scrollbar color */
      --scrollbar-thumb-color: var(--menu-divider-color);
      --scrollbar-track-color: rgba(95, 97, 101, 0.3);
      /* theme select color */
      --theme-select-color: rgba(255, 255, 255, 0.5);
      --button-color: rgb(62, 66, 73);
      --select-color: rgb(33, 37, 43);
      /* focus color */
      --focus-color: rgba(100, 100, 100, 0.8);
      --focus-ring-color: var(--focus-color);
      /* codeblock color */
      --code-red-color: hsl(355, 65%, 65%);
      --code-yellow-color: hsl(39, 67%, 69%);
      --code-cyan-color: hsl(187, 47%, 55%);
      --code-blue-color: hsl(207, 82%, 66%);
      --code-purple-color: hsl(286, 60%, 67%);
      --code-orange-color: hsl(29, 54%, 61%);
      --code-green-color: hsl(95, 38%, 62%);
      --code-grey-color: hsl(220, 9%, 55%);
    
      --code-select-bg-color: rgb(59,68,84);
      --code-cursor-color: hsl(220, 100%, 66%);
      /* implicit selecttion text bg color */
      --select-text-bg-color: rgb(64,72,89);
      /* implicit button color */
      --primary-color: var(--button-color);
      --primary-btn-border-color: transparent;
      --primary-btn-text-color: var(--text-color2);
      /* implicit sidebar color */
      --side-bar-bg-color: var(--bg-color2);
      --control-text-color: var(--text-color2);
      /* implicit text color */
      --text-color: var(--text-color1);
      /* implicit background color for setting menu */
      --bg-color: var(--bg-color1);
      /* implicit hover color */
      --item-hover-bg-color: var(--hover-bg-color1);
      --item-hover-text-color: var(--hover-text-color);
      /* implicit active color */
      --active-file-bg-color: var(--hover-bg-color);
      /* implicit mathjax edit panel background color */
      --rawblock-edit-panel-bd: var(--bg-color5);
      /* implicit focus mode color */
      --blur-text-color: var(--text-color5);
      /* implicit search result select color */
      --search-select-bg-color: rgb(56, 71, 95);
    
      --control-text-hover-color: var(--hover-text-color);
      /* implicit active file color in sidebar file menu treeview */
      --active-file-text-color: var(--hover-text-color);
      --active-file-border-color: var(--hover-text-color);
    
      --node-border: var(--menu-divider-color);
      --node-fill: var(--bg-color2);
      /* implicit border color in export menu of setting */
      --border-color: var(--menu-divider-color);
    }
    
    /* font */
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: normal;
      src: local("Open Sans Regular"), url("./onedark/400.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: normal;
      src: local("Open Sans Italic"), url("./onedark/400i.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: bold;
      src: local("Open Sans Bold"), url("./onedark/700.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: bold;
      src: local("Open Sans Bold Italic"), url("./onedark/700i.woff") format("woff");
    }
    
    /* basic style */
    html {
      font-size: 16px;
    }
    
    body {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;, "Clear Sans", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
      color: var(--text-color1);
      background: var(--bg-color1);
      line-height: 1.6;
    }
    
    /* text selection background color */
    .in-text-selection {
      background-color: --select-text-bg-color;
    }
    
    /* link */
    #write a:not([role="menuitem"]) {
      color: var(--link-color) !important;
    }
    
    #write a:not([role="menuitem"]):hover {
      color: var(--hover-text-color) !important;
    }
    
    /* h1-h6 */
    #write h1,
    #write h2,
    #write h3,
    #write h4,
    #write h5,
    #write h6 {
      margin-top: 0.5em;
      margin-bottom: 0em;
      line-height: 1em;
      text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
      padding-top: 0.3em;
    }
    
    #write h1 {
      font-size: 2.5em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    
    }
    
    /* #write h1:before {
      content: "\00A7  ";
    }
     */
    #write h2 {
      font-size: 2em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    }
    
    /* #write h2:before {
      content: "\00A7  ";
    }
     */
    #write h3 {
      font-size: 1.75em;
      padding-bottom: 0.5em;
      border-bottom: 1px solid var(--text-color5);
    }
    
    #write h4 {
      font-size: 1.55em;
    }
    
    #write h5 {
      font-size: 1.35em;
    }
    
    #write h6 {
      font-size: 1.2em;
    }
    
    /* horizontal divider */
    hr {
      height: 1px;
      background-color: var(--text-color5);
      border: 0px;
    }
    
    /* list */
    ul,
    ol {
      padding-left: 30px;
    }
    
    /* blockquote */
    blockquote {
      border-left: 4px solid var(--text-color1);
      padding: 4px 15px;
      color: var(--text-color1);
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    blockquote blockquote {
      padding-right: 0em;
    }
    
    /* table */
    .md-rawblock > .md-rawblock-container table,
    .md-table-fig,
    .md-table-fig:active {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    table thead tr {
      background-color: var(--table-thead-color);
    }
    
    table tr th {
      font-weight: bold;
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tbody tr {
      border-top: 1px solid var(--table-border-color);
      margin: 0;
      padding: 0;
    }
    
    table tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    table tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    table tr td {
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tr th:first-child,
    table tr td:first-child {
      border-left-width: 0px;
    }
    
    table tr th:last-child,
    table tr td:last-child {
      border-right-width: 0px;
    }
    
    /* table edit panel */
    .ty-table-edit {
      background-color: var(--bg-color3);
      border: 0px;
      border-radius: 6px;
      padding-top: 2px;
      padding-bottom: 2px;
      padding-left: 6px;
      padding-right: 6px;
      margin-top: -29px !important;
    }
    
    /* button on table edit panel */
    .ty-table-edit button {
      background-color: transparent;
      color: var(--text-color2);
      border: 0px;
      margin-left: 0px !important;
    }
    
    /* button hover on table edit panel */
    .ty-table-edit button:hover {
      background-color: var(--hover-bg-color3);
      color: var(--hover-text-color);
    }
    
    /* adjusting table panel */
    .popover {
      background-color: var(--bg-color2);
      box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* arrow of adjusting table panel */
    .popover.bottom > .arrow:after {
      border-bottom-color: var(--bg-color2);
    }
    
    /* divider in adjust table panel */
    .md-grid-board-wrap .popover-title {
      border-top-color: var(--menu-divider-color);
    }
    
    /* grid size */
    .md-grid-board a {
      width: 15px;
      height: 15px;
    }
    
    /* existing thread grid */
    .md-grid-board tr[row="1"] .md-grid-ext {
      background-color: rgb(60, 60, 60);
    }
    
    /* not existing thread grid */
    .md-grid-board tr[row="1"] {
      background-color: rgb(220, 220, 220);
    }
    
    /* existing grid */
    .md-grid-board .md-grid-ext {
      background-color: rgb(120, 120, 120);
    }
    
    /* selected thread grid */
    .md-grid-board tr[row="1"] a.md-active,
    .md-grid-board tr[row="1"] a:hover {
      background-color: rgb(60, 60, 60);
    }
    
    /* selected grid */
    .md-grid-board a.md-active,
    .md-grid-board a:hover {
      border-color: var(--menu-divider-color);
      background-color: rgb(120, 120, 120);
    }
    
    /* task */
    .md-task-list-item > input {
      margin-left: -1.3em;
    }
    
    /* footnote */
    sup.md-footnote {
      color: var(--text-color1);
      background-color: var(--bg-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* mathjax */
    /* .mathjax-block>.code-tooltip {
        bottom: .375rem;
    }
    .md-mathjax-midline {
        background: #fafafa;
    } */
    .md-inline-math script {
      color: var(--text-color1);
    }
    
    .on-focus-mode #write svg {
      opacity: 1;
    }
    
    .md-rawblock > .md-rawblock-container {
      transition: 0.5s;
    }
    
    .md-rawblock > .md-rawblock-tooltip {
      transition: 0.5s;
      display: block;
      visibility: hidden;
      opacity: 0;
    }
    
    .md-rawblock:hover > .md-rawblock-tooltip {
      transition: 0.5s;
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* meta information of image */
    .md-image > .md-meta {
      border: 0px;
      padding: 2px 0px 0px 4px;
      font-size: 0.9em;
      color: var(--text-color1);
    }
    
    /* input */
    input {
      background-color: var(--input-color) !important;
      border: 0px !important;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* input hover */
    /* input:hover {
        background-color: var(--hover-bg-color2) !important;
    } */
    /* checkbox */
    input[type="checkbox"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 3px;
      background-color: var(--input-color);
      margin-top: -0.5rem;
      margin-left: -0.2rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* checkbox hover */
    input[type="checkbox"]:not([disabled]):not(:checked):hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color3);
    }
    
    /* checkbox checked*/
    input[type="checkbox"]:checked:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color2);
    }
    
    /* checkbox checked hover*/
    input[type="checkbox"]:checked:hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--hover-text-color);
    }
    
    /* radio */
    input[type="radio"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 0.55rem;
      background-color: var(--input-color);
      margin-top: -0.4rem;
      margin-left: -0.1rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* radio hover */
    input[type="radio"]:not([disabled]):not(:checked):hover:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color3);
    }
    
    /* radio checked */
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color2);
    }
    
    /* radio checked hover*/
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--hover-text-color);
    }
    
    /* default focus style */
    :focus {
      outline-color: var(--focus-color);
    }
    
    /* exit source view button */
    .typora-sourceview-on #toggle-sourceview-btn {
      background-color: var(--bg-color2);
    }
    
    .typora-sourceview-on #toggle-sourceview-btn:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* shadow for image item*/
    .md-image img {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc */
    .md-toc {
      background-color: var(--bg-color3);
      border-radius: 6px;
      padding: 0px 0px 0px 0px;
      margin: 0px 0px 0px 0px;
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc content */
    .md-toc-content {
      padding-top: 5px;
      padding-bottom: 8px;
      margin-top: 15px;
      margin-bottom: 0px;
    }
    
    /* remove outline when toc is selected */
    .md-toc:focus .md-toc-content {
      border: 0px;
      margin: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc item */
    .md-toc-item {
      margin: 2px;
    }
    
    /* toc edit panel */
    #write div.md-toc-tooltip {
      border: 0px;
      padding-left: 10px;
      padding-right: 10px;
      background-color: var(--bg-color3);
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      opacity: 0;
      visibility: hidden;
      display: block !important;
      transition: 0.3s;
    }
    
    #write .md-toc:focus div.md-toc-tooltip {
      visibility: visible;
      opacity: 1;
    }
    
    #write .md-toc:focus {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
    }
    
    /* toc delete button */
    .md-delete-toc {
      background-color: transparent;
    }
    
    /* html block */
    .md-htmlblock:hover .md-htmlblock-container {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      border-top-right-radius: 0px;
    }
    
    /* search panel */
    #md-searchpanel {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* ignore case button and find whole word button */
    .searchpanel-search-option-btn {
      border: 0px;
    }
    
    /* button on search panel */
    #md-searchpanel .btn:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* remove shadow around input in search panel*/
    #md-searchpanel input {
      box-shadow: none;
    }
    
    /* search option button hover */
    .searchpanel-search-option-btn:not(.active):hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    /* close button in search panel */
    #md-searchpanel .input-group-addon.close-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* replaceall button */
    .ty-replace-panel-row #search-panel-replaceall-btn {
      padding-left: 8px;
      padding-right: 6px !important;
    }
    
    /* replace button */
    .ty-replace-panel-row #search-panel-replace-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* sidebar */
    .sidebar-menu {
      color: var(--text-color2);
    }
    
    /* sidebar shadow */
    #typora-sidebar,
    .typora-node #typora-sidebar {
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider between file item and search */
    .ty-sidebar-search-panel {
      border-color: var(--menu-divider-color);
    }
    
    /* file item in sidebar */
    #file-library .file-list-item {
      border-bottom: 0px;
      opacity: 1;
      border-left: 4px solid;
      border-color: var(--bg-color2);
    }
    
    /* file item hover */
    #file-library .file-list-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-bg-color1);
    }
    
    /* file item active */
    #file-library .file-list-item.active {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-text-color);
    }
    
    /* suffix of file item*/
    .file-list-item-file-ext-part {
      opacity: 0.8;
    }
    
    /* sidebar file menu */
    #sidebar-files-menu {
      border: 0px;
      box-shadow: -2px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* sidebar file menu item */
    .dropdown-menu > li > a {
      color: var(--text-color2);
    }
    
    .dropdown-menu > li > a:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file menu close button */
    #close-sidebar-menu-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file nemu divider */
    #sidebar-files-menu > .show + .menuitem-group-label.show {
      border-color: var(--menu-divider-color);
    }
    
    /* sidebar osx tab */
    .html-for-mac .sidebar-osx-tab > .sidebar-tabs {
      border: 0px;
      box-shadow: 0 4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    .html-for-mac .sidebar-content {
      z-index: -1; /* so that the background doesn't overlap with the shadow */
    }
    
    /* sidebar footer */
    .sidebar-footer {
      border: 0px;
      box-shadow: 0 -4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    /* remove outline when file item in treeview is selected*/
    .file-library-node:not(.file-node-root):focus > .file-node-content {
      outline: none;
    }
    
    /* sort button on sidebar file menu */
    .ty-side-sort-btn.active,
    .ty-side-sort-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* setting */
    /* header in setting */
    .window-header {
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5) !important;
    }
    
    /* sidebar in setting */
    .sidebar {
      background-color: var(--bg-color2) !important;
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    .list-group-content {
      margin-left: 10px !important;
    }
    
    /* sidebar button in setting menu */
    .nav-group-item {
      color: var(--text-color2) !important;
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
    }
    
    /* sidebar button hover in setting menu */
    .nav-group-item:hover,
    .nav-group-item:active,
    .nav-group-item.active {
      background-color: var(--hover-bg-color1) !important;
      color: var(--hover-text-color) !important;
    }
    
    /* remove up and down button from number type input*/
    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none !important;
    }
    
    /* the indent example in setting.editor */
    div[data-index="2"] .label-input-group td:last-child div {
      border: 0px !important;
      border-radius: 6px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin: 10px !important;
    }
    
    /* button in setting menu */
    .ty-preferences button.btn-default {
      border: 0px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
    }
    
    /* button hover in setting menu */
    .ty-preferences .btn-default:not([disabled]):hover {
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* return button in setting menu */
    .window-header button:hover {
      color: var(--text-color2) !important;
    }
    
    /* search input in setting menu */
    .search-input {
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
      margin-top: 10px !important;
      margin-bottom: 10px !important;
      margin-left: 10px !important;
    }
    
    .search-input:focus {
      border: none !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2) !important;
    }
    
    /* select item (mostly in setting menu) */
    select {
      border: 0px;
      border-radius: 6px;
      background-color: var(--input-color) !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* enabled select item hover */
    select:not([disabled]):hover {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* disabled select item hover */
    select[disabled]:hover {
      opacity: 0.5;
    }
    
    /* mega menu */
    .megamenu-content,
    .megamenu-opened header {
      background: var(--bg-color1);
    }
    
    .megamenu-content {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .megamenu-opened .megamenu-content {
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* mega menu sidebar*/
    .megamenu-menu {
      background-color: var(--bg-color2);
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* return button in mega menu */
    #megamenu-menu-sidebar .menu-style-btn {
      border: 0px;
    }
    
    /* remove divider in mega menu */
    .megamenu-menu-header {
      border-color: var(--menu-divider-color);
    }
    
    /* return button color in mega menu */
    .megamenu-menu-header #megamenu-menu-header-title {
      color: var(--text-color2);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover #megamenu-menu-header-title {
      color: var(--hover-text-color);
    }
    
    /* long button in mega menu */
    .long-btn {
      border: 0px;
      background-color: var(--bg-color5);
      color: var(--text-color1);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin-bottom: 10px;
      margin-left: 10px;
    }
    
    /* recent file in mega menu */
    #recent-file-panel {
      padding: 10px;
    }
    
    #recent-document-table {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel-action-btn {
      background: var(--bg-color5);
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel thead tr {
      background-color: var(--table-thead-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    #recent-file-panel-action-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--text-color2);
    }
    
    /* theme preview */
    .theme-preview-div {
      box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.8);
    }
    
    /* theme preview hover */
    .theme-preview-div:hover {
      border-color: var(--theme-select-color);
    }
    
    /* context menu and spell check panel */
    .dropdown-menu:not(.megamenu-menu-list) {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider in context menu and spell check panel */
    .dropdown-menu .divider {
      border-color: var(--menu-divider-color);
    }
    
    /* remove divider outline */
    .dropdown-menu {
      border: 0px;
    }
    
    /* footer */
    footer.ty-footer {
      border-top: 0px !important;
      background-color: var(--bg-color2) !important;
      /*     color: var(--text-color2); */
      box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* footer item */
    .footer-item,
    #outline-btn,
    #footer-word-count {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* footer item hover */
    .footer-item:hover,
    #outline-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* button on some panel */
    .btn {
      border: 0px;
      outline-width: 0px !important;
    }
    
    .btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* traffic button hover */
    #top-titlebar .toolbar-icon.btn:hover {
      color: var(--text-color2);
      background-color: var(--hover-bg-color1);
    }
    
    /* traffic button hover */
    #top-titlebar #w-close:hover {
      background-color: #e81123 !important;
    }
    
    /* adjust maxmize restore button height */
    .typora-maxmized #w-restore {
      height: 24px;
    }
    
    /* left upper button hover */
    .ty-menu-btn-area:hover .ty-menu-btn-area-sub {
      color: var(--text-color2) !important;
    }
    
    /* scrollbar */
    ::-webkit-scrollbar {
      width: 8px;
      padding-right: 10px;
      background-color: rgba(0, 0, 0, 0);
    }
    
    /* scrollbar track */
    ::-webkit-scrollbar-track:hover {
      background-color: var(--scrollbar-track-color) !important;
      border-radius: 4px;
    }
    
    /* scrollbar thumb */
    ::-webkit-scrollbar-thumb,
    ::-webkit-scrollbar-thumb:active {
      background-color: var(--scrollbar-thumb-color) !important;
      border-radius: 4px;
    }
    
    /* tip when hover on a button */
    #ty-tooltip {
      background-color: var(--bg-color4);
      color: var(--text-color4);
    }
    
    /* item container hover in context menu */
    .menu-item-container:hover {
      background-color: var(--bg-color2);
    }
    
    /* item in context menu */
    .menu-item-container .menu-style-btn {
      border-color: var(--menu-divider-color);
    }
    
    /* mathjax edit panel*/
    .md-rawblock-before {
      border-top-left-radius: 6px;
    }
    
    .md-rawblock-after {
      border-bottom-left-radius: 6px;
      border-bottom-right-radius: 6px;
    }
    
    /* mathjax focus */
    .MathJax_SVG:focus {
      outline: none;
      background-color: transparent;
    }
    
    /* notification panel */
    #md-notification {
      background-color: var(--bg-color2) !important;
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    #ty-surpress-mode-warning-close-btn {
      float: unset !important;
      margin: 0px !important;
    }
    
    .unibody-window #md-notification p {
      bottom: -4px !important;
    }
    
    /* inline codeblock */
    code {
      font-size: 0.9em;
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 4px 4px 4px 4px;
      margin: 0px 0px 0px 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* codeblock */
    .md-fences,
    .md-fences:active {
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 8px 4px 8px 4px !important;
      margin-top: 15px;
      margin-bottom: 15px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .md-fences .code-tooltip {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
      background-color: var(--bg-color3);
    }
    
    .md-fences.md-focus .code-tooltip {
      opacity: 1;
      visibility: visible;
    }
    
    .CodeMirror-lines {
      padding-left: 4px;
    }
    
    /* selected text and cursor */
    .CodeMirror-selected,
    .CodeMirror-selectedtext {
      background: var(--code-select-bg-color) !important;
    }
    
    .CodeMirror div.CodeMirror-cursor {
      border-left: 2px solid var(--code-cursor-color);
      z-index: 3;
    }
    
    .CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
      border-left: 3px solid var(--code-cursor-color);
    }
    
    /* highlight */
    .cm-s-inner .cm-property {
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-operator {
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-keyword {
      color: var(--code-purple-color) !important;
    }
    
    .cm-s-inner .cm-tag {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-attribute {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-string {
      color: var(--code-green-color) !important;
    }
    
    .cm-s-inner .cm-comment,
    .cm-s-inner.cm-comment {
      /*     color: var(--code-orange-color) !important; */
      color: var(--code-grey-color) !important;
      font-style: italic;
    }
    
    .cm-s-inner .cm-header,
    .cm-s-inner .cm-def,
    .cm-s-inner.cm-header,
    .cm-s-inner.cm-def {
      /*     color: var(--code-red-color) !important; */
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-meta,
    .cm-s-inner .cm-qualifier {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-builtin {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-bracket {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-number {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-variable {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-variable-2 {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-yellow-color) !important;
    }
    
    .cm-s-typora-default .cm-header,
    .cm-s-typora-default .cm-property {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-typora-default .cm-string {
      /*     color: var(--code-blue-color); */
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-atom {
      color: var(--code-grey-color);
      font-style: italic;
    }
    
    .cm-s-typora-default .cm-number {
      color: var(--code-orange-color);
      font-style: normal !important;
    }
    
    .cm-s-typora-default .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .CodeMirror-activeline-background {
      background: var(--hover-bg-color1);
    }
    
    .cm-s-typora-default .cm-comment,
    .cm-s-typora-default .cm-code {
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-tag {
      /*     color: var(--code-red-color); */
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .cm-strong,
    .cm-s-typora-default .cm-em,
    .cm-s-typora-default .cm-del {
      /*     color: var(--code-green-color); */
      color: var(--code-orange-color);
    }
    
    .cm-s-typora-default .cm-block-start.cm-variable-2 {
      /*     color: var(--code-orange-color); */
      color: var(--code-red-color);
    }
    
    .cm-formatting-task .cm-formatting-task {
      color: var(--code-red-color);
    }
    
    /* math formula tag */
    .cm-s-inner .cm-atom,
    .cm-s-inner.cm-atom {
      color: var(--code-blue-color);
    }
    
    /* inline codeblock in source mode */
    .cm-s-typora-default .cm-comment {
      color: var(--code-green-color);
    }
    
    /* horizontal divider when language is markdown */
    .cm-s-inner .cm-hr {
      color: var(--text-color1);
    }
    
    /* variable type when language is c/cpp */
    .cm-s-inner .cm-variable-3 {
      color: var(--code-purple-color);
    }
    
    /* in pie chart and flowchart */
    .cm-s-inner .cm-quote,
    .cm-s-inner.cm-quote {
      color: var(--code-green-color);
    }
    
    /* unknown highlight keyword */
    .cm-s-inner .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-inner .cm-negative {
      color: #d95050;
    }
    
    .cm-s-inner .cm-positive {
      color: #50e650;
    }
    
    .cm-s-inner .cm-string-2 {
      color: #f50;
    }
    
    .CodeMirror-gutters {
      border-right: none;
    }
    
    /* focus mode */
    .on-focus-mode .md-end-block:not(.md-focus) .md-toc-item {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h2:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h2:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h3:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    /* YAML block */
    pre.md-meta-block,
    pre.md-meta-block:active {
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      padding: 10px;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    /* switch between different mode */
    #typora-source {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .typora-sourceview-on #typora-source {
      visibility: visible;
      opacity: 1;
    }
    
    #typora-source .CodeMirror-lines {
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    #write {
      display: block !important;
      visibility: visible;
      opacity: 1;
      transition: 0.3s;
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    .typora-sourceview-on #write {
      visibility: hidden;
      opacity: 0;
    }
    
    /* #md-searchpanel {
        visibility: hidden;
        opacity: 0;
        transition: 0.3s !important;
    }
    
    .on-search-panel-open #md-searchpanel {
        visibility: visible;
        opacity: 1;
    } */
    
    .uni-preference-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .show-preference-panel .uni-preference-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* quick open menu */
    .typora-quick-open-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* insert table panel */
    .modal-content {
      border: 0px !important;
      border-radius: 6px !important;
    }
    
    .modal-content .btn-primary {
      background-color: transparent;
      color: var(--text-color1);
      outline-width: 0px;
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-default {
      background-color: var(--hover-bg-color1);
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-primary:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    .modal-content .form-control,
    .modal-content .form-control:focus {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* zoom  */
    #zoom-hint #zoom-hint-reset {
      color: var(--text-color1);
    }
    
    #zoom-hint .zoom-hint-button:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* word count */
    #footer-word-count-info {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-word-count #footer-word-count-info {
      visibility: visible;
      opacity: 1;
    }
    
    /* spell check */
    #spell-check-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-spell-check #spell-check-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* search result */
    .md-search-select {
      border: 2px solid rgb(69, 125, 255);
      box-sizing: content-box;
      color: var(--text-color1) !important;
    }
    
    .md-search-hit {
      background-color: var(--search-select-bg-color);
    }
    
    /* search panel message */
    #searchpanel-msg {
      background-color: var(--bg-color2);
      color: var(--text-color2);
    }
    
    .searchpanel-msg-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* language selection for codeblock */
    .auto-suggest-container {
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      background-color: var(--bg-color2);
    }
    
    /* sidebar outline item hover and active */
    .outline-item:hover {
      color: var(--hover-text-color);
    }
    
    .outline-label:hover {
      text-decoration: none;
    }
    
    .pin-outline .outline-active {
      color: var(--hover-text-color);
    }
    
    /* sidebar title hover */
    .info-panel-tab:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* active file in sidebar file menu treeview */
    .file-tree-node.active > .file-node-background {
      background-color: var(--hover-bg-color1);
    }
    
    /* hover file in sidebar file menu treeview */
    .file-node-content:hover {
      cursor: pointer;
    }
    
    /* saved button in megamenu */
    #m-saved:hover {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      cursor: default;
    }
    
    /* mermaid flowchart */
    .node rect,
    .node circle,
    .node ellipse,
    .node polygon,
    .node path {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .path {
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .arrowheadPath {
      fill: var(--menu-divider-color) !important;
    }
    
    .label {
      color: var(--text-color1) !important;
    }
    
    .edgeLabel rect {
      fill: transparent !important;
    }
    
    .cluster rect {
      fill: var(--bg-color5) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid sequence*/
    rect.actor {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.actor tspan {
      fill: var(--text-color1) !important;
    }
    
    #crosshead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    #arrowhead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageLine0,
    .messageLine1 {
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageText {
      fill: var(--text-color1) !important;
    }
    
    rect[class*="activation"] {
      fill: var(--bg-color2) !important;
    }
    
    .actor-line {
      stroke-width: 1px !important;
    }
    
    .labelBox {
      fill: var(--bg-color2) !important;
      stroke: rgb(150, 150, 150) !important;
    }
    
    .labelText {
      fill: var(--text-color1) !important;
    }
    
    .loopText,
    .loopText tspan
    {
      fill: var(--text-color1) !important;
    }
    
    .loopLine {
      stroke: rgb(180, 180, 180) !important;
    }
    
    .note {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .noteText tspan {
      fill: var(--text-color1) !important;
    }
    
    rect.rect {
      fill: var(--bg-color3);
    }
    
    /* mermaid class */
    g.classGroup text {
      fill: var(--text-color1) !important;
    }
    
    g.classGroup rect {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color2) !important;
    }
    
    g.classGroup line {
      stroke: var(--menu-divider-color) !important;
    }
    
    .classLabel .label {
      fill: var(--text-color1) !important;
    }
    
    .relation {
      stroke: var(--menu-divider-color) !important;
    }
    
    #compositionStart path,
    #compositionEnd path,
    #aggregationStart path,
    #aggregationEnd path,
    #dependencyStart path,
    #dependencyStart path,
    #extensionStart path,
    #extensionEnd path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cardinality text {
      fill: var(--text-color1) !important;
    }
    
    .classLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    /* mermaid state v1 */
    .stateGroup rect,
    .stateGroup line {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup text {
      fill: var(--text-color1) !important;
    }
    
    .stateGroup circle {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup .composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 17%) !important;
    }
    
    .stateGroup .alt-composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
    }
    
    .state-note rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .state-note text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    #dependencyEnd {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid state v2 */
    circle.state-start {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.state-end {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color4) !important;
    }
    
    .divider {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color5) !important;
      fill: hsl(218, 13%, 13.5%) !important;
    }
    
    rect.fork-join {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .title-state {
      fill: var(--bg-color2) !important;
    }
    
    .statediagram-cluster .outer {
      fill: var(--bg-color3) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cluster-label span {
      color: var(--text-color1);
    }
    
    .statediagram-cluster .inner {
      /*   fill: var(--bg-color2) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .statediagram-cluster-alt .inner {
      /*   fill: var(--bg-color5) !important; */
      fill: hsl(218, 13%, 16%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .transition {
      stroke: var(--menu-divider-color) !important;
    }
    
    #statediagram-barbEnd {
      fill: var(--menu-divider-color) !important;
    }
    
    /* mermaid erDiagram */
    rect.er.entityBox {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.er.entityLabel {
      fill: var(--text-color1) !important;
    }
    
    #ONLY_ONE_START path,
    #ONLY_ONE_END path,
    #ZERO_OR_ONE_START path,
    #ZERO_OR_ONE_END path,
    #ONE_OR_MORE_START path,
    #ONE_OR_MORE_END path,
    #ZERO_OR_MORE_START path,
    #ZERO_OR_MORE_END path {
      stroke: var(--menu-divider-color) !important;
    }
    
    #ZERO_OR_ONE_START circle,
    #ZERO_OR_ONE_END circle,
    #ZERO_OR_MORE_START circle,
    #ZERO_OR_MORE_END circle {
      fill: var(--bg-color) !important;
    }
    
    path.er.relationshipLine {
      stroke: var(--menu-divider-color) !important;
    }
    
    rect.er.relationshipLabelBox {
      fill: var(--bg-color3) !important;
    }
    
    text.er.relationshipLabel {
      fill: var(--text-color1) !important;
    }
    
    /* mermaid journey */
    .journey-section {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .task {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1px !important;
    }
    
    #arrowhead {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 0.3px !important;
    }
    
    text.legend {
      fill: var(--text-color1) !important;
    }
    
    pre[mermaid-type="journey"] svg > line {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 2px !important;
    }
    
    pre[mermaid-type="journey"] svg > text {
      fill: var(--text-color1) !important;
    }
    
    .task-line {
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.face {
      fill: var(--bg-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    circle.face + g > circle {
      fill: var(--text-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    path.mouth,
    line.mouth {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid gantt */
    text.sectionTitle tspan{
      fill: var(--text-color1) !important;
    }
    
    .section0,
    .section2 {
      fill: var(--bg-color4) !important;
    }
    
    .section1,
    .section3 {
      fill: var(--table-bg-color) !important;
    }
    
    .task0,
    .task1,
    .task2,
    .task3 {
      fill: rgb(80, 84, 90) !important;
      stroke: rgb(80, 84, 90) !important;
    }
    
    taskText0,
    .taskText1,
    .taskText2,
    .taskText3 {
      fill: var(--text-color2) !important;
    }
    
    .active0,
    .active1,
    .active2,
    .active3 {
      fill: rgb(100, 104, 110) !important;
      stroke: rgb(100, 104, 110) !important;
    }
    
    .activeText0,
    .activeText1,
    .activeText2,
    .activeText3 {
      fill: var(--text-color2) !important;
    }
    
    .done0,
    .done1,
    .done2,
    .done3 {
      fill: rgb(48, 51, 58) !important;
      stroke: rgb(48, 51, 58) !important;
    }
    
    .crit0,
    .crit1,
    .crit2,
    .crit3 {
      fill: rgb(150, 150, 150) !important;
      stroke: var(--text-color1) !important;
    }
    
    .activeCrit0,
    .activeCrit1,
    .activeCrit2,
    .activeCrit3 {
      fill: rgb(100, 104, 110) !important;
      stroke: var(--text-color1) !important;
    }
    
    .doneCrit0,
    .doneCrit1,
    .doneCrit2,
    .doneCrit3 {
      fill: rgb(48, 51, 58) !important;
      stroke: var(--text-color1) !important;
    }
    
    .taskTextOutside0,
    .taskTextOutside1,
    .taskTextOutside2,
    .taskTextOutside3 {
      fill: var(--text-color1) !important;
    }
    
    .grid text {
      fill: var(--text-color1) !important;
    }
    
    .today {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid pie chart */
    .pieTitleText {
      fill: var(--text-color1) !important;
    }
    
    
    g.legend > text {
      fill: var(--text-color1) !important;
    }
    
    g.legend > rect {
      stroke: var(--bg-color) !important;
    }
    
    g > path {
      stroke: var(--bg-color) !important;
    }
    
    g > text.slice {
      fill: var(--bg-color) !important;
    }
    
    /* flow diagram */
    .md-fences[lang="flow"] .md-diagram-panel-preview rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] .md-diagram-panel-preview path {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] #cond {
      fill: var(--bg-color2) !important;
    }
    
    /* sequence diagram */
    .md-fences[lang="sequence"] .md-diagram-panel-preview rect:not([fill="none"]) {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] .md-diagram-panel-preview path {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] text,
    .md-fences[lang="flow"] text {
      font-family: "Consolas" !important;
    }
    
    /* remove box shadow when not edit graph */
    .md-fences[lang="sequence"]:not(.md-focus),
    .md-fences[lang="mermaid"]:not(.md-focus),
    .md-fences[lang="flow"]:not(.md-focus) {
      box-shadow: none;
    }
    
    /* remove border when edit graph */
    .md-diagram-panel {
      border: none !important;
    }
    
    kbd {
      background: var(--bg-color5);
      color: var(--text-color1);
      font-family: "Lucida Console";
      border-color: var(--menu-divider-color);
      box-shadow: 0 2px 0 var(--menu-divider-color);
    }
    
    /* new export menu in setting */
    .export-detail {
      color: var(--text-color1) !important;
      background: transparent !important;
    }
    
    .export-item.active {
      background: var(--hover-bg-color1) !important;
      border-radius: 6px !important;
    }
    
    .export-detail textarea{
      background: var(--bg-color5);
      border: none;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .export-items-list-control {
      background: var(--bg-color2) !important;
      border-radius: 6px !important;
    }
    
    .icon-dot-3:before {
      color: var(--text-color1);
      z-index: 1;
    }
    
    .row.text-input select {
      width: 510px !important;
    }
  • 在Typora中使用“霞骛文楷”字体

    在Typora中使用“霞骛文楷”字体

    一直非常喜欢霞骛文楷的字体,这个站点为了使用这个字体甚至不惜牺牲了加载速度。现在终于找到了在Typora中使用这个字体的方法。

    步骤如下:

    • 在Typora的主题文件夹中新建一个==xiawu.css==文件;
    • 将以下代码复制到文件中保存;
    • 主题选择==xiawu==
    :root {
      /* dark color for background*/
      /* default color */
      --bg-color1: hsl(220, 13%, 18%);
      /* for most panel, context, header, etc */
      --bg-color2: rgb(33, 37, 43);
      /* for toc and table edit panel */
      --bg-color3: rgba(16, 17, 20, 0.5);
      /* for tips */
      --bg-color4: black;
      /* for blockquote, codeblock, input, etc */
      --bg-color5: rgb(29, 31, 35);
      /* light color for text and icon*/
      /* default color */
      --text-color1: hsl(220, 6%, 71%);
      /* for text on panel */
      --text-color2: rgb(220, 220, 220);
      /* for checkbox and radio */
      --text-color3: hsl(192, 6%, 40%);
      /* for tips */
      --text-color4: white;
      /* for focus mode */
      --text-color5: rgba(170, 178, 180, 0.5);
      /* link color */
      --link-color: rgb(197, 202, 210);
      /* table color */
      --table-border-color: rgb(100, 104, 116);
      --table-thead-color: rgb(31, 35, 40);
      --table-bg-color: rgb(40, 44, 52);
      --table-bg-darker-color: rgb(35, 40, 46);
      /* hover color */
      /* default hover background color */
      --hover-bg-color1: rgb(62, 66, 73);
      /* for input item */
      --hover-bg-color2: hsl(220, 9%, 14%);
      /* for button on toc and table edit panel */
      --hover-bg-color3: rgba(62, 66, 73, 0.8);
      /* default hover text color */
      --hover-text-color: white;
      /* active color */
      --active-color: var(--hover-bg-color1);
      /* input color */
      --input-color: rgb(29, 31, 35);
      /* menu divider color */
      /*   --menu-divider-color: rgb(95, 97, 101); */
      --menu-divider-color: hsl(220, 5%, 40%);
      /* scrollbar color */
      --scrollbar-thumb-color: var(--menu-divider-color);
      --scrollbar-track-color: rgba(95, 97, 101, 0.3);
      /* theme select color */
      --theme-select-color: rgba(255, 255, 255, 0.5);
      --button-color: rgb(62, 66, 73);
      --select-color: rgb(33, 37, 43);
      /* focus color */
      --focus-color: rgba(100, 100, 100, 0.8);
      --focus-ring-color: var(--focus-color);
      /* codeblock color */
      --code-red-color: hsl(355, 65%, 65%);
      --code-yellow-color: hsl(39, 67%, 69%);
      --code-cyan-color: hsl(187, 47%, 55%);
      --code-blue-color: hsl(207, 82%, 66%);
      --code-purple-color: hsl(286, 60%, 67%);
      --code-orange-color: hsl(29, 54%, 61%);
      --code-green-color: hsl(95, 38%, 62%);
      --code-grey-color: hsl(220, 9%, 55%);
    
      --code-select-bg-color: rgb(59,68,84);
      --code-cursor-color: hsl(220, 100%, 66%);
      /* implicit selecttion text bg color */
      --select-text-bg-color: rgb(64,72,89);
      /* implicit button color */
      --primary-color: var(--button-color);
      --primary-btn-border-color: transparent;
      --primary-btn-text-color: var(--text-color2);
      /* implicit sidebar color */
      --side-bar-bg-color: var(--bg-color2);
      --control-text-color: var(--text-color2);
      /* implicit text color */
      --text-color: var(--text-color1);
      /* implicit background color for setting menu */
      --bg-color: var(--bg-color1);
      /* implicit hover color */
      --item-hover-bg-color: var(--hover-bg-color1);
      --item-hover-text-color: var(--hover-text-color);
      /* implicit active color */
      --active-file-bg-color: var(--hover-bg-color);
      /* implicit mathjax edit panel background color */
      --rawblock-edit-panel-bd: var(--bg-color5);
      /* implicit focus mode color */
      --blur-text-color: var(--text-color5);
      /* implicit search result select color */
      --search-select-bg-color: rgb(56, 71, 95);
    
      --control-text-hover-color: var(--hover-text-color);
      /* implicit active file color in sidebar file menu treeview */
      --active-file-text-color: var(--hover-text-color);
      --active-file-border-color: var(--hover-text-color);
    
      --node-border: var(--menu-divider-color);
      --node-fill: var(--bg-color2);
      /* implicit border color in export menu of setting */
      --border-color: var(--menu-divider-color);
    }
    
    /* font */
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: normal;
      src: local("Open Sans Regular"), url("./onedark/400.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: normal;
      src: local("Open Sans Italic"), url("./onedark/400i.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: normal;
      font-weight: bold;
      src: local("Open Sans Bold"), url("./onedark/700.woff") format("woff");
    }
    
    @font-face {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;;
      font-style: italic;
      font-weight: bold;
      src: local("Open Sans Bold Italic"), url("./onedark/700i.woff") format("woff");
    }
    
    /* basic style */
    html {
      font-size: 16px;
    }
    
    body {
      font-family: "霞骛文楷","LXGW WenKai GB Screen", sans-serif;, "Clear Sans", "Helvetica Neue", Helvetica, Arial,
        sans-serif;
      color: var(--text-color1);
      background: var(--bg-color1);
      line-height: 1.6;
    }
    
    /* text selection background color */
    .in-text-selection {
      background-color: --select-text-bg-color;
    }
    
    /* link */
    #write a:not([role="menuitem"]) {
      color: var(--link-color) !important;
    }
    
    #write a:not([role="menuitem"]):hover {
      color: var(--hover-text-color) !important;
    }
    
    /* h1-h6 */
    #write h1,
    #write h2,
    #write h3,
    #write h4,
    #write h5,
    #write h6 {
      margin-top: 0.5em;
      margin-bottom: 0em;
      line-height: 1em;
      text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.8);
      padding-top: 0.3em;
    }
    
    #write h1 {
      font-size: 2.5em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    
    }
    
    /* #write h1:before {
      content: "\00A7  ";
    }
     */
    #write h2 {
      font-size: 2em;
      padding-bottom: 0.5em;
      border-bottom: 3px double var(--text-color5);
    }
    
    /* #write h2:before {
      content: "\00A7  ";
    }
     */
    #write h3 {
      font-size: 1.75em;
      padding-bottom: 0.5em;
      border-bottom: 1px solid var(--text-color5);
    }
    
    #write h4 {
      font-size: 1.55em;
    }
    
    #write h5 {
      font-size: 1.35em;
    }
    
    #write h6 {
      font-size: 1.2em;
    }
    
    /* horizontal divider */
    hr {
      height: 1px;
      background-color: var(--text-color5);
      border: 0px;
    }
    
    /* list */
    ul,
    ol {
      padding-left: 30px;
    }
    
    /* blockquote */
    blockquote {
      border-left: 4px solid var(--text-color1);
      padding: 4px 15px;
      color: var(--text-color1);
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    blockquote blockquote {
      padding-right: 0em;
    }
    
    /* table */
    .md-rawblock > .md-rawblock-container table,
    .md-table-fig,
    .md-table-fig:active {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    table thead tr {
      background-color: var(--table-thead-color);
    }
    
    table tr th {
      font-weight: bold;
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tbody tr {
      border-top: 1px solid var(--table-border-color);
      margin: 0;
      padding: 0;
    }
    
    table tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    table tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    table tr td {
      border-left: 1px solid var(--table-border-color);
      border-right: 1px solid var(--table-border-color);
      text-align: left;
      margin: 0;
      padding: 6px 13px;
    }
    
    table tr th:first-child,
    table tr td:first-child {
      border-left-width: 0px;
    }
    
    table tr th:last-child,
    table tr td:last-child {
      border-right-width: 0px;
    }
    
    /* table edit panel */
    .ty-table-edit {
      background-color: var(--bg-color3);
      border: 0px;
      border-radius: 6px;
      padding-top: 2px;
      padding-bottom: 2px;
      padding-left: 6px;
      padding-right: 6px;
      margin-top: -29px !important;
    }
    
    /* button on table edit panel */
    .ty-table-edit button {
      background-color: transparent;
      color: var(--text-color2);
      border: 0px;
      margin-left: 0px !important;
    }
    
    /* button hover on table edit panel */
    .ty-table-edit button:hover {
      background-color: var(--hover-bg-color3);
      color: var(--hover-text-color);
    }
    
    /* adjusting table panel */
    .popover {
      background-color: var(--bg-color2);
      box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* arrow of adjusting table panel */
    .popover.bottom > .arrow:after {
      border-bottom-color: var(--bg-color2);
    }
    
    /* divider in adjust table panel */
    .md-grid-board-wrap .popover-title {
      border-top-color: var(--menu-divider-color);
    }
    
    /* grid size */
    .md-grid-board a {
      width: 15px;
      height: 15px;
    }
    
    /* existing thread grid */
    .md-grid-board tr[row="1"] .md-grid-ext {
      background-color: rgb(60, 60, 60);
    }
    
    /* not existing thread grid */
    .md-grid-board tr[row="1"] {
      background-color: rgb(220, 220, 220);
    }
    
    /* existing grid */
    .md-grid-board .md-grid-ext {
      background-color: rgb(120, 120, 120);
    }
    
    /* selected thread grid */
    .md-grid-board tr[row="1"] a.md-active,
    .md-grid-board tr[row="1"] a:hover {
      background-color: rgb(60, 60, 60);
    }
    
    /* selected grid */
    .md-grid-board a.md-active,
    .md-grid-board a:hover {
      border-color: var(--menu-divider-color);
      background-color: rgb(120, 120, 120);
    }
    
    /* task */
    .md-task-list-item > input {
      margin-left: -1.3em;
    }
    
    /* footnote */
    sup.md-footnote {
      color: var(--text-color1);
      background-color: var(--bg-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* mathjax */
    /* .mathjax-block>.code-tooltip {
        bottom: .375rem;
    }
    .md-mathjax-midline {
        background: #fafafa;
    } */
    .md-inline-math script {
      color: var(--text-color1);
    }
    
    .on-focus-mode #write svg {
      opacity: 1;
    }
    
    .md-rawblock > .md-rawblock-container {
      transition: 0.5s;
    }
    
    .md-rawblock > .md-rawblock-tooltip {
      transition: 0.5s;
      display: block;
      visibility: hidden;
      opacity: 0;
    }
    
    .md-rawblock:hover > .md-rawblock-tooltip {
      transition: 0.5s;
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* meta information of image */
    .md-image > .md-meta {
      border: 0px;
      padding: 2px 0px 0px 4px;
      font-size: 0.9em;
      color: var(--text-color1);
    }
    
    /* input */
    input {
      background-color: var(--input-color) !important;
      border: 0px !important;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* input hover */
    /* input:hover {
        background-color: var(--hover-bg-color2) !important;
    } */
    /* checkbox */
    input[type="checkbox"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 3px;
      background-color: var(--input-color);
      margin-top: -0.5rem;
      margin-left: -0.2rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* checkbox hover */
    input[type="checkbox"]:not([disabled]):not(:checked):hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color3);
    }
    
    /* checkbox checked*/
    input[type="checkbox"]:checked:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--text-color2);
    }
    
    /* checkbox checked hover*/
    input[type="checkbox"]:checked:hover:before {
      content: "\2713";
      font-size: 0.9rem;
      line-height: 1.2rem;
      color: var(--hover-text-color);
    }
    
    /* radio */
    input[type="radio"]:before {
      content: "";
      display: inline-block;
      width: 1.2rem;
      height: 1.2rem;
      vertical-align: middle;
      text-align: center;
      border: 0px;
      border-radius: 0.55rem;
      background-color: var(--input-color);
      margin-top: -0.4rem;
      margin-left: -0.1rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* radio hover */
    input[type="radio"]:not([disabled]):not(:checked):hover:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color3);
    }
    
    /* radio checked */
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--text-color2);
    }
    
    /* radio checked hover*/
    input[type="radio"]:checked:before {
      content: "\25CF";
      font-size: 1rem;
      line-height: 1rem;
      color: var(--hover-text-color);
    }
    
    /* default focus style */
    :focus {
      outline-color: var(--focus-color);
    }
    
    /* exit source view button */
    .typora-sourceview-on #toggle-sourceview-btn {
      background-color: var(--bg-color2);
    }
    
    .typora-sourceview-on #toggle-sourceview-btn:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* shadow for image item*/
    .md-image img {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc */
    .md-toc {
      background-color: var(--bg-color3);
      border-radius: 6px;
      padding: 0px 0px 0px 0px;
      margin: 0px 0px 0px 0px;
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc content */
    .md-toc-content {
      padding-top: 5px;
      padding-bottom: 8px;
      margin-top: 15px;
      margin-bottom: 0px;
    }
    
    /* remove outline when toc is selected */
    .md-toc:focus .md-toc-content {
      border: 0px;
      margin: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* toc item */
    .md-toc-item {
      margin: 2px;
    }
    
    /* toc edit panel */
    #write div.md-toc-tooltip {
      border: 0px;
      padding-left: 10px;
      padding-right: 10px;
      background-color: var(--bg-color3);
      border-top-left-radius: 6px;
      border-top-right-radius: 6px;
      opacity: 0;
      visibility: hidden;
      display: block !important;
      transition: 0.3s;
    }
    
    #write .md-toc:focus div.md-toc-tooltip {
      visibility: visible;
      opacity: 1;
    }
    
    #write .md-toc:focus {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
    }
    
    /* toc delete button */
    .md-delete-toc {
      background-color: transparent;
    }
    
    /* html block */
    .md-htmlblock:hover .md-htmlblock-container {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      border-top-right-radius: 0px;
    }
    
    /* search panel */
    #md-searchpanel {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* ignore case button and find whole word button */
    .searchpanel-search-option-btn {
      border: 0px;
    }
    
    /* button on search panel */
    #md-searchpanel .btn:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* remove shadow around input in search panel*/
    #md-searchpanel input {
      box-shadow: none;
    }
    
    /* search option button hover */
    .searchpanel-search-option-btn:not(.active):hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    /* close button in search panel */
    #md-searchpanel .input-group-addon.close-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* replaceall button */
    .ty-replace-panel-row #search-panel-replaceall-btn {
      padding-left: 8px;
      padding-right: 6px !important;
    }
    
    /* replace button */
    .ty-replace-panel-row #search-panel-replace-btn {
      padding-left: 16px;
      padding-right: 16px;
    }
    
    /* sidebar */
    .sidebar-menu {
      color: var(--text-color2);
    }
    
    /* sidebar shadow */
    #typora-sidebar,
    .typora-node #typora-sidebar {
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider between file item and search */
    .ty-sidebar-search-panel {
      border-color: var(--menu-divider-color);
    }
    
    /* file item in sidebar */
    #file-library .file-list-item {
      border-bottom: 0px;
      opacity: 1;
      border-left: 4px solid;
      border-color: var(--bg-color2);
    }
    
    /* file item hover */
    #file-library .file-list-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-bg-color1);
    }
    
    /* file item active */
    #file-library .file-list-item.active {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
      border-color: var(--hover-text-color);
    }
    
    /* suffix of file item*/
    .file-list-item-file-ext-part {
      opacity: 0.8;
    }
    
    /* sidebar file menu */
    #sidebar-files-menu {
      border: 0px;
      box-shadow: -2px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* sidebar file menu item */
    .dropdown-menu > li > a {
      color: var(--text-color2);
    }
    
    .dropdown-menu > li > a:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file menu close button */
    #close-sidebar-menu-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* sidebar file nemu divider */
    #sidebar-files-menu > .show + .menuitem-group-label.show {
      border-color: var(--menu-divider-color);
    }
    
    /* sidebar osx tab */
    .html-for-mac .sidebar-osx-tab > .sidebar-tabs {
      border: 0px;
      box-shadow: 0 4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    .html-for-mac .sidebar-content {
      z-index: -1; /* so that the background doesn't overlap with the shadow */
    }
    
    /* sidebar footer */
    .sidebar-footer {
      border: 0px;
      box-shadow: 0 -4px 10px -5px rgba(0, 0, 0, 0.5);
    }
    
    /* remove outline when file item in treeview is selected*/
    .file-library-node:not(.file-node-root):focus > .file-node-content {
      outline: none;
    }
    
    /* sort button on sidebar file menu */
    .ty-side-sort-btn.active,
    .ty-side-sort-btn:hover {
      color: var(--hover-text-color);
    }
    
    /* setting */
    /* header in setting */
    .window-header {
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5) !important;
    }
    
    /* sidebar in setting */
    .sidebar {
      background-color: var(--bg-color2) !important;
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    .list-group-content {
      margin-left: 10px !important;
    }
    
    /* sidebar button in setting menu */
    .nav-group-item {
      color: var(--text-color2) !important;
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
    }
    
    /* sidebar button hover in setting menu */
    .nav-group-item:hover,
    .nav-group-item:active,
    .nav-group-item.active {
      background-color: var(--hover-bg-color1) !important;
      color: var(--hover-text-color) !important;
    }
    
    /* remove up and down button from number type input*/
    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
      -webkit-appearance: none !important;
    }
    
    /* the indent example in setting.editor */
    div[data-index="2"] .label-input-group td:last-child div {
      border: 0px !important;
      border-radius: 6px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin: 10px !important;
    }
    
    /* button in setting menu */
    .ty-preferences button.btn-default {
      border: 0px;
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
    }
    
    /* button hover in setting menu */
    .ty-preferences .btn-default:not([disabled]):hover {
      background-color: var(--hover-bg-color1) !important;
    }
    
    /* return button in setting menu */
    .window-header button:hover {
      color: var(--text-color2) !important;
    }
    
    /* search input in setting menu */
    .search-input {
      border-top-left-radius: 6px !important;
      border-bottom-left-radius: 6px !important;
      border-top-right-radius: 0px !important;
      border-bottom-right-radius: 0px !important;
      margin-top: 10px !important;
      margin-bottom: 10px !important;
      margin-left: 10px !important;
    }
    
    .search-input:focus {
      border: none !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2) !important;
    }
    
    /* select item (mostly in setting menu) */
    select {
      border: 0px;
      border-radius: 6px;
      background-color: var(--input-color) !important;
      padding-top: 5px !important;
      padding-bottom: 5px !important;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* enabled select item hover */
    select:not([disabled]):hover {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* disabled select item hover */
    select[disabled]:hover {
      opacity: 0.5;
    }
    
    /* mega menu */
    .megamenu-content,
    .megamenu-opened header {
      background: var(--bg-color1);
    }
    
    .megamenu-content {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .megamenu-opened .megamenu-content {
      visibility: visible;
      opacity: 1;
      animation: none;
    }
    
    /* mega menu sidebar*/
    .megamenu-menu {
      background-color: var(--bg-color2);
      box-shadow: 3px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* return button in mega menu */
    #megamenu-menu-sidebar .menu-style-btn {
      border: 0px;
    }
    
    /* remove divider in mega menu */
    .megamenu-menu-header {
      border-color: var(--menu-divider-color);
    }
    
    /* return button color in mega menu */
    .megamenu-menu-header #megamenu-menu-header-title {
      color: var(--text-color2);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover {
      background-color: var(--hover-bg-color1);
    }
    
    /* return button hover in mega menu */
    .megamenu-menu-header:hover #megamenu-menu-header-title {
      color: var(--hover-text-color);
    }
    
    /* long button in mega menu */
    .long-btn {
      border: 0px;
      background-color: var(--bg-color5);
      color: var(--text-color1);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      margin-bottom: 10px;
      margin-left: 10px;
    }
    
    /* recent file in mega menu */
    #recent-file-panel {
      padding: 10px;
    }
    
    #recent-document-table {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel-action-btn {
      background: var(--bg-color5);
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    #recent-file-panel thead tr {
      background-color: var(--table-thead-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n) {
      background-color: var(--table-bg-darker-color);
    }
    
    #recent-file-panel tbody tr:nth-child(2n + 1) {
      background-color: var(--table-bg-color);
    }
    
    #recent-file-panel-action-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--text-color2);
    }
    
    /* theme preview */
    .theme-preview-div {
      box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.8);
    }
    
    /* theme preview hover */
    .theme-preview-div:hover {
      border-color: var(--theme-select-color);
    }
    
    /* context menu and spell check panel */
    .dropdown-menu:not(.megamenu-menu-list) {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* divider in context menu and spell check panel */
    .dropdown-menu .divider {
      border-color: var(--menu-divider-color);
    }
    
    /* remove divider outline */
    .dropdown-menu {
      border: 0px;
    }
    
    /* footer */
    footer.ty-footer {
      border-top: 0px !important;
      background-color: var(--bg-color2) !important;
      /*     color: var(--text-color2); */
      box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.5);
    }
    
    /* footer item */
    .footer-item,
    #outline-btn,
    #footer-word-count {
      color: var(--text-color2);
      opacity: 1;
    }
    
    /* footer item hover */
    .footer-item:hover,
    #outline-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* button on some panel */
    .btn {
      border: 0px;
      outline-width: 0px !important;
    }
    
    .btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* traffic button hover */
    #top-titlebar .toolbar-icon.btn:hover {
      color: var(--text-color2);
      background-color: var(--hover-bg-color1);
    }
    
    /* traffic button hover */
    #top-titlebar #w-close:hover {
      background-color: #e81123 !important;
    }
    
    /* adjust maxmize restore button height */
    .typora-maxmized #w-restore {
      height: 24px;
    }
    
    /* left upper button hover */
    .ty-menu-btn-area:hover .ty-menu-btn-area-sub {
      color: var(--text-color2) !important;
    }
    
    /* scrollbar */
    ::-webkit-scrollbar {
      width: 8px;
      padding-right: 10px;
      background-color: rgba(0, 0, 0, 0);
    }
    
    /* scrollbar track */
    ::-webkit-scrollbar-track:hover {
      background-color: var(--scrollbar-track-color) !important;
      border-radius: 4px;
    }
    
    /* scrollbar thumb */
    ::-webkit-scrollbar-thumb,
    ::-webkit-scrollbar-thumb:active {
      background-color: var(--scrollbar-thumb-color) !important;
      border-radius: 4px;
    }
    
    /* tip when hover on a button */
    #ty-tooltip {
      background-color: var(--bg-color4);
      color: var(--text-color4);
    }
    
    /* item container hover in context menu */
    .menu-item-container:hover {
      background-color: var(--bg-color2);
    }
    
    /* item in context menu */
    .menu-item-container .menu-style-btn {
      border-color: var(--menu-divider-color);
    }
    
    /* mathjax edit panel*/
    .md-rawblock-before {
      border-top-left-radius: 6px;
    }
    
    .md-rawblock-after {
      border-bottom-left-radius: 6px;
      border-bottom-right-radius: 6px;
    }
    
    /* mathjax focus */
    .MathJax_SVG:focus {
      outline: none;
      background-color: transparent;
    }
    
    /* notification panel */
    #md-notification {
      background-color: var(--bg-color2) !important;
      color: var(--text-color2);
      box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.5);
    }
    
    #ty-surpress-mode-warning-close-btn {
      float: unset !important;
      margin: 0px !important;
    }
    
    .unibody-window #md-notification p {
      bottom: -4px !important;
    }
    
    /* inline codeblock */
    code {
      font-size: 0.9em;
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 4px 4px 4px 4px;
      margin: 0px 0px 0px 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* codeblock */
    .md-fences,
    .md-fences:active {
      background-color: var(--bg-color5);
      border-radius: 6px;
      padding: 8px 4px 8px 4px !important;
      margin-top: 15px;
      margin-bottom: 15px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .md-fences .code-tooltip {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
      background-color: var(--bg-color3);
    }
    
    .md-fences.md-focus .code-tooltip {
      opacity: 1;
      visibility: visible;
    }
    
    .CodeMirror-lines {
      padding-left: 4px;
    }
    
    /* selected text and cursor */
    .CodeMirror-selected,
    .CodeMirror-selectedtext {
      background: var(--code-select-bg-color) !important;
    }
    
    .CodeMirror div.CodeMirror-cursor {
      border-left: 2px solid var(--code-cursor-color);
      z-index: 3;
    }
    
    .CodeMirror.cm-s-typora-default div.CodeMirror-cursor {
      border-left: 3px solid var(--code-cursor-color);
    }
    
    /* highlight */
    .cm-s-inner .cm-property {
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-operator {
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-keyword {
      color: var(--code-purple-color) !important;
    }
    
    .cm-s-inner .cm-tag {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-attribute {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-string {
      color: var(--code-green-color) !important;
    }
    
    .cm-s-inner .cm-comment,
    .cm-s-inner.cm-comment {
      /*     color: var(--code-orange-color) !important; */
      color: var(--code-grey-color) !important;
      font-style: italic;
    }
    
    .cm-s-inner .cm-header,
    .cm-s-inner .cm-def,
    .cm-s-inner.cm-header,
    .cm-s-inner.cm-def {
      /*     color: var(--code-red-color) !important; */
      color: var(--code-blue-color) !important;
    }
    
    .cm-s-inner .cm-meta,
    .cm-s-inner .cm-qualifier {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-inner .cm-builtin {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-cyan-color) !important;
    }
    
    .cm-s-inner .cm-bracket {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-number {
      color: var(--code-orange-color) !important;
    }
    
    .cm-s-inner .cm-variable {
      color: var(--text-color1) !important;
    }
    
    .cm-s-inner .cm-variable-2 {
      /*     color: var(--code-blue-color) !important; */
      color: var(--code-yellow-color) !important;
    }
    
    .cm-s-typora-default .cm-header,
    .cm-s-typora-default .cm-property {
      color: var(--code-red-color) !important;
    }
    
    .cm-s-typora-default .cm-string {
      /*     color: var(--code-blue-color); */
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-atom {
      color: var(--code-grey-color);
      font-style: italic;
    }
    
    .cm-s-typora-default .cm-number {
      color: var(--code-orange-color);
      font-style: normal !important;
    }
    
    .cm-s-typora-default .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .CodeMirror-activeline-background {
      background: var(--hover-bg-color1);
    }
    
    .cm-s-typora-default .cm-comment,
    .cm-s-typora-default .cm-code {
      color: var(--code-purple-color);
    }
    
    .cm-s-typora-default .cm-tag {
      /*     color: var(--code-red-color); */
      color: var(--code-blue-color);
    }
    
    .cm-s-typora-default .cm-strong,
    .cm-s-typora-default .cm-em,
    .cm-s-typora-default .cm-del {
      /*     color: var(--code-green-color); */
      color: var(--code-orange-color);
    }
    
    .cm-s-typora-default .cm-block-start.cm-variable-2 {
      /*     color: var(--code-orange-color); */
      color: var(--code-red-color);
    }
    
    .cm-formatting-task .cm-formatting-task {
      color: var(--code-red-color);
    }
    
    /* math formula tag */
    .cm-s-inner .cm-atom,
    .cm-s-inner.cm-atom {
      color: var(--code-blue-color);
    }
    
    /* inline codeblock in source mode */
    .cm-s-typora-default .cm-comment {
      color: var(--code-green-color);
    }
    
    /* horizontal divider when language is markdown */
    .cm-s-inner .cm-hr {
      color: var(--text-color1);
    }
    
    /* variable type when language is c/cpp */
    .cm-s-inner .cm-variable-3 {
      color: var(--code-purple-color);
    }
    
    /* in pie chart and flowchart */
    .cm-s-inner .cm-quote,
    .cm-s-inner.cm-quote {
      color: var(--code-green-color);
    }
    
    /* unknown highlight keyword */
    .cm-s-inner .cm-link {
      color: var(--code-blue-color);
    }
    
    .cm-s-inner .cm-negative {
      color: #d95050;
    }
    
    .cm-s-inner .cm-positive {
      color: #50e650;
    }
    
    .cm-s-inner .cm-string-2 {
      color: #f50;
    }
    
    .CodeMirror-gutters {
      border-right: none;
    }
    
    /* focus mode */
    .on-focus-mode .md-end-block:not(.md-focus) .md-toc-item {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h2:not(.md-focus):before {
      opacity: 0.5;
    }
    
    .on-focus-mode #write h1:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h2:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    .on-focus-mode #write h3:not(.md-focus) {
      border-color: var(--text-color5);
    }
    
    /* YAML block */
    pre.md-meta-block,
    pre.md-meta-block:active {
      background-color: var(--bg-color5);
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      border-radius: 6px;
      padding: 10px;
      padding-left: 20px;
      padding-right: 20px;
    }
    
    /* switch between different mode */
    #typora-source {
      display: block !important;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .typora-sourceview-on #typora-source {
      visibility: visible;
      opacity: 1;
    }
    
    #typora-source .CodeMirror-lines {
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    #write {
      display: block !important;
      visibility: visible;
      opacity: 1;
      transition: 0.3s;
      max-width: 1200px;
      padding-left: 70px;
      padding-right: 70px;
    }
    
    .typora-sourceview-on #write {
      visibility: hidden;
      opacity: 0;
    }
    
    /* #md-searchpanel {
        visibility: hidden;
        opacity: 0;
        transition: 0.3s !important;
    }
    
    .on-search-panel-open #md-searchpanel {
        visibility: visible;
        opacity: 1;
    } */
    
    .uni-preference-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .show-preference-panel .uni-preference-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* quick open menu */
    .typora-quick-open-item:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* insert table panel */
    .modal-content {
      border: 0px !important;
      border-radius: 6px !important;
    }
    
    .modal-content .btn-primary {
      background-color: transparent;
      color: var(--text-color1);
      outline-width: 0px;
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-default {
      background-color: var(--hover-bg-color1);
      border: none;
      border-radius: 3px;
    }
    
    .modal-content .btn-primary:hover {
      color: var(--hover-text-color);
      background-color: var(--hover-bg-color1);
    }
    
    .modal-content .form-control,
    .modal-content .form-control:focus {
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    /* zoom  */
    #zoom-hint #zoom-hint-reset {
      color: var(--text-color1);
    }
    
    #zoom-hint .zoom-hint-button:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* word count */
    #footer-word-count-info {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-word-count #footer-word-count-info {
      visibility: visible;
      opacity: 1;
    }
    
    /* spell check */
    #spell-check-panel {
      display: block;
      visibility: hidden;
      opacity: 0;
      transition: 0.3s;
    }
    
    .ty-show-spell-check #spell-check-panel {
      visibility: visible;
      opacity: 1;
    }
    
    /* search result */
    .md-search-select {
      border: 2px solid rgb(69, 125, 255);
      box-sizing: content-box;
      color: var(--text-color1) !important;
    }
    
    .md-search-hit {
      background-color: var(--search-select-bg-color);
    }
    
    /* search panel message */
    #searchpanel-msg {
      background-color: var(--bg-color2);
      color: var(--text-color2);
    }
    
    .searchpanel-msg-btn:hover {
      background-color: var(--hover-bg-color1);
      color: var(--hover-text-color);
    }
    
    /* language selection for codeblock */
    .auto-suggest-container {
      border: 0px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
      background-color: var(--bg-color2);
    }
    
    /* sidebar outline item hover and active */
    .outline-item:hover {
      color: var(--hover-text-color);
    }
    
    .outline-label:hover {
      text-decoration: none;
    }
    
    .pin-outline .outline-active {
      color: var(--hover-text-color);
    }
    
    /* sidebar title hover */
    .info-panel-tab:hover {
      color: var(--hover-text-color) !important;
    }
    
    /* active file in sidebar file menu treeview */
    .file-tree-node.active > .file-node-background {
      background-color: var(--hover-bg-color1);
    }
    
    /* hover file in sidebar file menu treeview */
    .file-node-content:hover {
      cursor: pointer;
    }
    
    /* saved button in megamenu */
    #m-saved:hover {
      background-color: var(--bg-color2);
      color: var(--text-color2);
      cursor: default;
    }
    
    /* mermaid flowchart */
    .node rect,
    .node circle,
    .node ellipse,
    .node polygon,
    .node path {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .path {
      stroke: var(--menu-divider-color) !important;
    }
    
    .edgePath .arrowheadPath {
      fill: var(--menu-divider-color) !important;
    }
    
    .label {
      color: var(--text-color1) !important;
    }
    
    .edgeLabel rect {
      fill: transparent !important;
    }
    
    .cluster rect {
      fill: var(--bg-color5) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid sequence*/
    rect.actor {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.actor tspan {
      fill: var(--text-color1) !important;
    }
    
    #crosshead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    #arrowhead path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageLine0,
    .messageLine1 {
      stroke: var(--menu-divider-color) !important;
    }
    
    .messageText {
      fill: var(--text-color1) !important;
    }
    
    rect[class*="activation"] {
      fill: var(--bg-color2) !important;
    }
    
    .actor-line {
      stroke-width: 1px !important;
    }
    
    .labelBox {
      fill: var(--bg-color2) !important;
      stroke: rgb(150, 150, 150) !important;
    }
    
    .labelText {
      fill: var(--text-color1) !important;
    }
    
    .loopText,
    .loopText tspan
    {
      fill: var(--text-color1) !important;
    }
    
    .loopLine {
      stroke: rgb(180, 180, 180) !important;
    }
    
    .note {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .noteText tspan {
      fill: var(--text-color1) !important;
    }
    
    rect.rect {
      fill: var(--bg-color3);
    }
    
    /* mermaid class */
    g.classGroup text {
      fill: var(--text-color1) !important;
    }
    
    g.classGroup rect {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color2) !important;
    }
    
    g.classGroup line {
      stroke: var(--menu-divider-color) !important;
    }
    
    .classLabel .label {
      fill: var(--text-color1) !important;
    }
    
    .relation {
      stroke: var(--menu-divider-color) !important;
    }
    
    #compositionStart path,
    #compositionEnd path,
    #aggregationStart path,
    #aggregationEnd path,
    #dependencyStart path,
    #dependencyStart path,
    #extensionStart path,
    #extensionEnd path{
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cardinality text {
      fill: var(--text-color1) !important;
    }
    
    .classLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    /* mermaid state v1 */
    .stateGroup rect,
    .stateGroup line {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup text {
      fill: var(--text-color1) !important;
    }
    
    .stateGroup circle {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .stateGroup .composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 17%) !important;
    }
    
    .stateGroup .alt-composit {
      /*   fill: rgb(36,40,47) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
    }
    
    .state-note rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .state-note text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel text {
      fill: var(--text-color1) !important;
    }
    
    .stateLabel rect {
      fill: var(--bg-color3) !important;
    }
    
    #dependencyEnd {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    /* mermaid state v2 */
    circle.state-start {
      fill: var(--bg-color4) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.state-end {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color4) !important;
    }
    
    .divider {
      stroke: var(--menu-divider-color) !important;
      fill: var(--bg-color5) !important;
      fill: hsl(218, 13%, 13.5%) !important;
    }
    
    rect.fork-join {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .title-state {
      fill: var(--bg-color2) !important;
    }
    
    .statediagram-cluster .outer {
      fill: var(--bg-color3) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .cluster-label span {
      color: var(--text-color1);
    }
    
    .statediagram-cluster .inner {
      /*   fill: var(--bg-color2) !important; */
      fill: hsl(218, 13%, 16.5%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .statediagram-cluster-alt .inner {
      /*   fill: var(--bg-color5) !important; */
      fill: hsl(218, 13%, 16%) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .transition {
      stroke: var(--menu-divider-color) !important;
    }
    
    #statediagram-barbEnd {
      fill: var(--menu-divider-color) !important;
    }
    
    /* mermaid erDiagram */
    rect.er.entityBox {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    text.er.entityLabel {
      fill: var(--text-color1) !important;
    }
    
    #ONLY_ONE_START path,
    #ONLY_ONE_END path,
    #ZERO_OR_ONE_START path,
    #ZERO_OR_ONE_END path,
    #ONE_OR_MORE_START path,
    #ONE_OR_MORE_END path,
    #ZERO_OR_MORE_START path,
    #ZERO_OR_MORE_END path {
      stroke: var(--menu-divider-color) !important;
    }
    
    #ZERO_OR_ONE_START circle,
    #ZERO_OR_ONE_END circle,
    #ZERO_OR_MORE_START circle,
    #ZERO_OR_MORE_END circle {
      fill: var(--bg-color) !important;
    }
    
    path.er.relationshipLine {
      stroke: var(--menu-divider-color) !important;
    }
    
    rect.er.relationshipLabelBox {
      fill: var(--bg-color3) !important;
    }
    
    text.er.relationshipLabel {
      fill: var(--text-color1) !important;
    }
    
    /* mermaid journey */
    .journey-section {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
    }
    
    .task {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1px !important;
    }
    
    #arrowhead {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 0.3px !important;
    }
    
    text.legend {
      fill: var(--text-color1) !important;
    }
    
    pre[mermaid-type="journey"] svg > line {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 2px !important;
    }
    
    pre[mermaid-type="journey"] svg > text {
      fill: var(--text-color1) !important;
    }
    
    .task-line {
      stroke: var(--menu-divider-color) !important;
    }
    
    circle.face {
      fill: var(--bg-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    circle.face + g > circle {
      fill: var(--text-color1) !important;
      stroke: var(--text-color1) !important;
    }
    
    path.mouth,
    line.mouth {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid gantt */
    text.sectionTitle tspan{
      fill: var(--text-color1) !important;
    }
    
    .section0,
    .section2 {
      fill: var(--bg-color4) !important;
    }
    
    .section1,
    .section3 {
      fill: var(--table-bg-color) !important;
    }
    
    .task0,
    .task1,
    .task2,
    .task3 {
      fill: rgb(80, 84, 90) !important;
      stroke: rgb(80, 84, 90) !important;
    }
    
    taskText0,
    .taskText1,
    .taskText2,
    .taskText3 {
      fill: var(--text-color2) !important;
    }
    
    .active0,
    .active1,
    .active2,
    .active3 {
      fill: rgb(100, 104, 110) !important;
      stroke: rgb(100, 104, 110) !important;
    }
    
    .activeText0,
    .activeText1,
    .activeText2,
    .activeText3 {
      fill: var(--text-color2) !important;
    }
    
    .done0,
    .done1,
    .done2,
    .done3 {
      fill: rgb(48, 51, 58) !important;
      stroke: rgb(48, 51, 58) !important;
    }
    
    .crit0,
    .crit1,
    .crit2,
    .crit3 {
      fill: rgb(150, 150, 150) !important;
      stroke: var(--text-color1) !important;
    }
    
    .activeCrit0,
    .activeCrit1,
    .activeCrit2,
    .activeCrit3 {
      fill: rgb(100, 104, 110) !important;
      stroke: var(--text-color1) !important;
    }
    
    .doneCrit0,
    .doneCrit1,
    .doneCrit2,
    .doneCrit3 {
      fill: rgb(48, 51, 58) !important;
      stroke: var(--text-color1) !important;
    }
    
    .taskTextOutside0,
    .taskTextOutside1,
    .taskTextOutside2,
    .taskTextOutside3 {
      fill: var(--text-color1) !important;
    }
    
    .grid text {
      fill: var(--text-color1) !important;
    }
    
    .today {
      stroke: var(--text-color1) !important;
    }
    
    /* mermaid pie chart */
    .pieTitleText {
      fill: var(--text-color1) !important;
    }
    
    
    g.legend > text {
      fill: var(--text-color1) !important;
    }
    
    g.legend > rect {
      stroke: var(--bg-color) !important;
    }
    
    g > path {
      stroke: var(--bg-color) !important;
    }
    
    g > text.slice {
      fill: var(--bg-color) !important;
    }
    
    /* flow diagram */
    .md-fences[lang="flow"] .md-diagram-panel-preview rect {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] .md-diagram-panel-preview path {
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="flow"] #cond {
      fill: var(--bg-color2) !important;
    }
    
    /* sequence diagram */
    .md-fences[lang="sequence"] .md-diagram-panel-preview rect:not([fill="none"]) {
      fill: var(--bg-color2) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] .md-diagram-panel-preview path {
      fill: var(--menu-divider-color) !important;
      stroke: var(--menu-divider-color) !important;
      stroke-width: 1.2 !important;
    }
    
    .md-fences[lang="sequence"] text,
    .md-fences[lang="flow"] text {
      font-family: "Consolas" !important;
    }
    
    /* remove box shadow when not edit graph */
    .md-fences[lang="sequence"]:not(.md-focus),
    .md-fences[lang="mermaid"]:not(.md-focus),
    .md-fences[lang="flow"]:not(.md-focus) {
      box-shadow: none;
    }
    
    /* remove border when edit graph */
    .md-diagram-panel {
      border: none !important;
    }
    
    kbd {
      background: var(--bg-color5);
      color: var(--text-color1);
      font-family: "Lucida Console";
      border-color: var(--menu-divider-color);
      box-shadow: 0 2px 0 var(--menu-divider-color);
    }
    
    /* new export menu in setting */
    .export-detail {
      color: var(--text-color1) !important;
      background: transparent !important;
    }
    
    .export-item.active {
      background: var(--hover-bg-color1) !important;
      border-radius: 6px !important;
    }
    
    .export-detail textarea{
      background: var(--bg-color5);
      border: none;
      border-radius: 6px;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);
    }
    
    .export-items-list-control {
      background: var(--bg-color2) !important;
      border-radius: 6px !important;
    }
    
    .icon-dot-3:before {
      color: var(--text-color1);
      z-index: 1;
    }
    
    .row.text-input select {
      width: 510px !important;
    }
  • 对于张文宏医生的一些看法

    对于张文宏医生的一些看法

    “我们本来可以战斗到底的,但这可能导致地球发动机失控,这种情况一旦发生,过量聚变的物质将烧穿地球,或蒸发全部海洋,所以我们决定投降。我们理解所有的人,因为已经进行了四十代人、还要延续一百代人的艰难奋斗中,永远保持理智确实是一个奢求。但也请所有的人记住我们,站在这里的这五千多人,这里有联合政府的最高执政官,也有普通的列兵,是我们把信念坚持到了最后。我们都知道自己看不到真理被证实的那一天,但如果人类得以延续万代,以后所有的人将在我们的墓前洒下自己的眼泪,这颗叫地球的行星,就是我们永恒的纪念碑!”

    控制中心巨大的密封门隆隆开启,那五千多名最后的地球派一群群走了出来,在叛军的押送下向海岸走去。一路上两边挤满了人,所有人都冲他们吐唾沫,用冰块和石块砸他们。他们中有人密封服的面罩被砸裂了,外面零下一百多度的严寒使那些人的脸麻木了,但他们仍努力地走下去。我看到一个小女孩,举起一大块冰用尽全身力气狠命地向一个老者砸去, 她那双眼睛透过面罩射出疯狂的怒火。 ——《流浪地球》

    4ec03f1cec0fa1bd15ad5bdfafba379

    之前一直觉得刘慈欣脑洞大,故事写的精彩,但三年来发生的这么多事,特别是最近放开疫情管控后,愈发觉得没人比大刘更懂人性。

    最近知乎上有关张文宏的话题吵得很凶,有人在反对他,出各种各样的合订本,也有人继续支持他。

    在我的印象里,一直比较抵触张文宏医生,从他说“最后一个寒冬”开始,我就觉得似乎不是很靠谱。

    最后一个寒冬

    回顾2021年,印度疫情导致医用氧气供应不足、露天焚烧尸体等等,无不在向我们说明COVID-19的恐怖威力。

    2021年印度-露天焚烧尸体(网图)

    而转眼到了2022年4月初,在上海封控初期,张文宏多次作出错误预判,甚至抛出了“上海疫情拐点”论。

    文宏拐点

    我曾在2022年12月12日对比过上海与台湾在2022年的疫情数据,在两地基础情况相近甚至台湾占优的情况下,同样都是威力低于Delta的Omicron毒株,台湾死亡人数高出上海十几倍,甚至各年龄段均有死亡病例出现。

    论文截图

    张文宏团队曾发表过一篇论文,其中提出Omicron感染者中有症状的患者极少。

    采访截图

    在一个采访中,张文宏医生声称“没有重症、没有1例需要住院”,跟流感没有区别。

    中日友好医院2016-2018流感季共纳入574名符合条件的患者,其中甲型流感病例369例(64.3%),乙型流感病例205例(35.7%)。总体住院病死率为9.8%。113例(19.7%)入住ICU。住院时间中位数为13天(IQR 8-17天)

    这是一个来自应用7分等级量表比较甲流和乙流住院患者的病情严重程度 (chinapneumonia.cn)的数据,其中显示中日友好医院2016-2018流感季共纳入574名符合条件的患者,其中甲型流感病例369例(64.3%),乙型流感病例205例(35.7%)。总体住院病死率为9.8%。113例(19.7%)入住ICU。住院时间中位数为13天(IQR 8-17天)

    于此同时,甲流的死亡率是0.02%,R0仅为1.5 。

    即便不考虑当前医疗、殡葬挤兑情况,单纯以他采访中的发言内容来讲,依然是在混淆事实、偷换概念。

    我并不认为张文宏医生对国家疫情防控政策有着直接影响,但在媒体的极力推动下,张文宏医生的言论仿佛就是面对COVID-19的圣经。

    我坚持认为,有很多人正是因为盲信了张文宏医生的言论,而错误的认为COVID-19不如流感甚至不如感冒,认为自己身体素质好挺一挺就能过去,因此并没有提前准备任何药品。(流感和感冒是两种不同疾病,前者的严重程度远高于后者,但受中文语境以及大多数人的科学素养影响,很多人认为流感和感冒是同等的。)

    2022年4月上海方舱出院小结

    我坚持认为,张文宏医生身为一名面向公众发言的医学专家,有义务也有责任为公众健康负责,同时,其本人及其团队,应秉持审慎的科学精神,为其科研成果负责。

    当然,我人微言轻,这个网站也几乎没有别人来访问,所以我的意见无法去扭转什么,也无法改变谁的想法,但我会坚持我的意见。

    张文宏医生及其团队应该向公众作出道歉。

  • 2022年3月1日至7月31日上海、台湾COVID-19感染及死亡情况对比

    2022年3月1日至7月31日上海、台湾COVID-19感染及死亡情况对比

    基本情况

    指标上海台湾
    人口2489.43万2340.74
    人口密度3923人/平方千米650.92 人/平方公里
    老龄化率>65岁14.3%13.5%
    每千人病床数6.496.9
    主要流行毒株奥密克戎BA.2奥密克戎BA.2、奥密克戎BA.5
    统计时段2022年3月1日至2022年7月9日2022年3月1日至2022年7月31日

    疫情发展情况

    此部分数据来自必应新冠肺炎 – Azure Open Datasets | Microsoft Learn疫情通报_上海市卫生健康委员会

    image-20221209102950078

    必应新冠肺炎数据包含来自各地区的已确诊病例、死亡病例和治愈病例,该数据每日更新。 该数据反映在必应新冠肺炎跟踪器中。

    必应会从多个受信任的可靠来源收集数据,包括世界卫生组织 (WHO)疾病控制和预防中心 (CDC)、全国和各州公共健康部门、BNO News24/7 Wall St.维基百科

    上海2022年3月1日至7月9日Covid-19感染情况

    上海2022年3月1日至7月9日Covid-19感染情况

    由于上海的累计死亡病例不高,所以未在图中列出。

    台湾2022年3月1日至7月31日Covid-19确诊及死亡情况

    image-20221209103020855

    可以看到,在台湾的疫情中,死亡率人数自此轮疫情开始一个月后迅速提升。在疫情开始二个月后,死亡人数曲线逐步贴近累计感染人数曲线。

    此轮疫情中,台湾因感染新冠致死人数约为上海的10倍。

  • D1 黎明还是永夜?

    D1 黎明还是永夜?

    群众没有真正渴求过真理,面对那些不合口味的证据,他们会充耳不闻…凡是能向他们提供幻觉的,都可以很容易地成为他们的主人;凡是让他们幻灭的,都会成为他们的牺牲品。

    ——《乌合之众》

    2022年12月05日,沈阳市政府发布“沈阳市新冠肺炎疫情防控指挥部通告(第73号)”,简称“73号文”。

    image-20221206111543857

    疫情防控措施回到了几个月前,搭乘公共交通出行以及前往公共场所不再需要核酸阴性证明。但 No man ever steps in the same river twice ,疫情的整体形式已经与几个月前截然不同。

    面对R0=18的奥密克戎BA.51,我一直是悲观的态度。

    虽然现在流行的COVID-19变种重症率和死亡率极低,但63.78%是绝对得不到2022年3-5月期间上海居民同等医疗保障的,4200万的3岁以下婴幼儿更无法描述出病程的痛苦。

    记得在2022年3-5月上海疫情期间,台湾几乎也同步发生了疫情,台湾2022年6月人口2300万,上海常住人口2428.14万。在两地采取不同防疫策略的情况下,台湾2022年5、6月因疫情死亡的人数是上海截至目前疫情死亡人数的10倍。

    img
    image-20221206172220164

    从结构上看,上海疫情死亡平均年龄高于80岁,而台湾疫情中不乏孕妇死亡的案例。

    中国大陆的广大农村地区,又有多少人医疗条件比得上台湾居民呢?

    面对“二十条”之后的国内疫情防控态度,面对各地基层对政策的解读以及实施方式,今天,2022年12月6日,是属于我们的黎明还是永夜?

    [1]  [1]王彩红,姚晓文,王蓉,周玉霞,李斌,于晓辉,张久聪.新冠病毒“奥密克戎亚变体BA.5”的最新研究进展[J].海南医学院学报,2022,028(020):1521-1525.

  • 人类不感谢罗辑

    人类不感谢罗辑

    COVID-19

    优化疫情防控二十条措施 出台后,各地陆续跟进出台了属地化政策,各地基层执行起来也是一如既往的乱象丛生。但很多人似乎从中看到了新的希望,觉得生活能逐渐恢复到疫情之前……

    我个人对COVID-19一直持悲观态度,对基层落实各阶段防控政策也缺乏信心,特别是在经历了2022年初魔都的那场疫情之后。

    难以想象病毒在中国广袤的乡镇中迅速传播的样子。

    二十条之后,借用国际庄的那句话每个人都是自己健康的第一责任人 ,希望大家各自安好吧!

    江泽民同志逝世

    江泽民同志主政时期,正是我少不更事的阶段。在当时,完全无法理解那种韬光养晦的做法,也不懂得转型必须经历的种种阵痛。

    表面上看起来1993-2003年期间,对外政策疲软,对内反腐无力,但正是这十年,奠定了之后快速发展的基础。

    人总是要经历过才能成长,只能在阅历积累到一定程度的情况下才能理解真相。

    人类不感谢罗辑

    这本是《三体》中的一句话,罗辑以一己之力保护了人类,但没人感谢他。

    无论是三年来我们为确保人民健康所作出的巨大努力和牺牲,还是1993-2003十年间的忍辱负重。能理解的人并不多。

    借用《流浪地球》原著中的一个段落:

    “我们本来可以战斗到底的,但这可能导致地球发动机失控,这种情况一旦发生,过量聚变的物质将烧穿地球,或蒸发全部海洋,所以我们决定投降。我们理解所有的人,因为已经进行了四十代人、还要延续一百代人的艰难奋斗中,永远保持理智确实是一个奢求。但也请所有的人记住我们,站在这里的这五千多人,这里有联合政府的最高执政官,也有普通的列兵,是我们把信念坚持到了最后。我们都知道自己看不到真理被证实的那一天,但如果人类得以延续万代,以后所有的人将在我们的墓前洒下自己的眼泪,这颗叫地球的行星,就是我们永恒的纪念碑!”

    控制中心巨大的密封门隆隆开启,那五千多名最后的地球派一群群走了出来,在叛军的押送下向海岸走去。一路上两边挤满了人,所有人都冲他们吐唾沫,用冰块和石块砸他们。他们中有人密封服的面罩被砸裂了,外面零下一百多度的严寒使那些人的脸麻木了,但他们仍努力地走下去。我看到一个小女孩,举起一大块冰用尽全身力气狠命地向一个老者砸去, 她那双眼睛透过面罩射出疯狂的怒火。

    未来,也许每个人的记忆,都是伟大的纪念碑。

  • 域名备案完成

    域名备案完成

    blog.guohao.asia/ 这个域名是在2014年10月注册的,已经用了8年多。之前在阿里云做过备案,但后期从阿里云转到腾讯云之后,备案就因为IP不一致被取消掉了。为了提升网站的访问速度,把站点迁回国内,现在又不得不重新开始备案历程。

    从2022年9月19日到9月27日,历时8天,备案完成! 不得不说,域名ICP备案是个挺神奇的过程,各地管局都要求在备案之前要确保网站不能被访问,所以,备案过程中核查的应该只是网站经营者身份,而非网站的具体内容。也正是因此,站点暂时关闭,等待备案号下发,在此之前,先离线写一些内容,同时研究一下如何用另外一个域名绑定到wordpress上。

    在尝试用另外一个域名绑定的时候,又出现了一个奇葩问题——一个崭新的域名从GoDaddy解析到腾讯云海外服务器,居然被腾讯云给限制了,这还是在尝试做CDN过程中发现的,莫非腾讯云和GoDaddy还有其他不为人知的爱恨情仇?

AI 助手