summaryrefslogtreecommitdiff
path: root/themes/terminal/assets/css
diff options
context:
space:
mode:
Diffstat (limited to 'themes/terminal/assets/css')
-rw-r--r--themes/terminal/assets/css/buttons.css94
-rw-r--r--themes/terminal/assets/css/code.css84
-rw-r--r--themes/terminal/assets/css/color/blue.css14
-rw-r--r--themes/terminal/assets/css/color/green.css14
-rw-r--r--themes/terminal/assets/css/color/pink.css14
-rw-r--r--themes/terminal/assets/css/color/red.css14
-rw-r--r--themes/terminal/assets/css/font.css17
-rw-r--r--themes/terminal/assets/css/footer.css50
-rw-r--r--themes/terminal/assets/css/gist.css6
-rw-r--r--themes/terminal/assets/css/header.css162
-rw-r--r--themes/terminal/assets/css/logo.css8
-rw-r--r--themes/terminal/assets/css/main.css346
-rw-r--r--themes/terminal/assets/css/pagination.css86
-rw-r--r--themes/terminal/assets/css/post.css132
-rw-r--r--themes/terminal/assets/css/prism.css336
-rw-r--r--themes/terminal/assets/css/style.css17
-rw-r--r--themes/terminal/assets/css/syntax.css156
-rw-r--r--themes/terminal/assets/css/terms.css9
-rw-r--r--themes/terminal/assets/css/variables.css13
19 files changed, 1572 insertions, 0 deletions
diff --git a/themes/terminal/assets/css/buttons.css b/themes/terminal/assets/css/buttons.css
new file mode 100644
index 0000000..2bef686
--- /dev/null
+++ b/themes/terminal/assets/css/buttons.css
@@ -0,0 +1,94 @@
+.button-container {
+ display: table;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+button,
+.button,
+a.button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 8px 18px;
+ margin-bottom: 5px;
+ text-decoration: none;
+ text-align: center;
+ border-radius: 8px;
+ border: 1px solid transparent;
+ appearance: none;
+ cursor: pointer;
+ outline: none;
+
+ /* variants */
+
+ &.outline {
+ background: transparent;
+ box-shadow: none;
+ padding: 8px 18px;
+
+ :hover {
+ transform: none;
+ box-shadow: none;
+ }
+ }
+
+ &.primary {
+ box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
+
+ &:hover {
+ box-shadow: 0 2px 6px rgba(50, 50, 93, .21), 0 1px 3px rgba(0, 0, 0, .08);
+ }
+ }
+
+ &.link {
+ background: none;
+ font-size: 1rem;
+ }
+
+
+ /* sizes */
+
+ &.small {
+ font-size: .8rem;
+ }
+
+ &.wide {
+ min-width: 200px;
+ padding: 14px 24px;
+ }
+}
+
+a.read-more,
+a.read-more:hover,
+a.read-more:active {
+ display: inline-flex;
+ background: none;
+ box-shadow: none;
+ padding: 0;
+ margin: 20px 0;
+ max-width: 100%;
+}
+
+.code-toolbar {
+ margin-bottom: 20px;
+
+ .toolbar-item a {
+ position: relative;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: 3px 8px;
+ margin-bottom: 5px;
+ text-decoration: none;
+ text-align: center;
+ font-size: 13px;
+ font-weight: 500;
+ border-radius: 8px;
+ border: 1px solid transparent;
+ appearance: none;
+ cursor: pointer;
+ outline: none;
+ }
+}
diff --git a/themes/terminal/assets/css/code.css b/themes/terminal/assets/css/code.css
new file mode 100644
index 0000000..8405fa9
--- /dev/null
+++ b/themes/terminal/assets/css/code.css
@@ -0,0 +1,84 @@
+.collapsable-code {
+ --border-color: color-mod(var(--accent) blend(#999 90%));
+
+ position: relative;
+ width: 100%;
+ margin: 40px 0;
+
+ input[type="checkbox"] {
+ position: absolute;
+ visibility: hidden;
+ }
+
+ input[type="checkbox"]:checked {
+ ~ pre,
+ ~ .code-toolbar pre {
+ height: 0;
+ padding: 0;
+ border-top: none;
+ }
+
+ ~ .code-toolbar {
+ padding: 0;
+ border-top: none;
+
+ .toolbar {
+ display: none;
+ }
+ }
+
+ ~ label .collapsable-code__toggle:after {
+ content: attr(data-label-expand);
+ }
+ }
+
+ label {
+ position: relative;
+ display: flex;
+ justify-content: space-between;
+ min-width: 30px;
+ min-height: 30px;
+ margin: 0;
+ border-bottom: 1px solid var(--border-color);
+ cursor: pointer;
+ }
+
+ &__title {
+ flex: 1;
+ color: var(--accent);
+ padding: 3px 10px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ &__language {
+ color: var(--accent);
+ border: 1px solid var(--border-color);
+ border-bottom: none;
+ text-transform: uppercase;
+ padding: 3px 10px;
+ }
+
+ &__toggle {
+ color: var(--accent);
+ font-size: 16px;
+ padding: 3px 10px;
+
+ &:after {
+ content: attr(data-label-collapse);
+ }
+ }
+
+ pre {
+ margin-top: 0;
+
+ &::first-line {
+ line-height: 0;
+ }
+ }
+
+ .code-toolbar {
+ margin: 0;
+ }
+}
diff --git a/themes/terminal/assets/css/color/blue.css b/themes/terminal/assets/css/color/blue.css
new file mode 100644
index 0000000..c83c723
--- /dev/null
+++ b/themes/terminal/assets/css/color/blue.css
@@ -0,0 +1,14 @@
+@import '../main.css';
+@import '../header.css';
+@import '../logo.css';
+@import '../pagination.css';
+@import '../post.css';
+@import '../syntax.css';
+@import '../variables.css';
+
+:root {
+ --accent: #23B0FF;
+ --background: color-mod(var(--accent) blend(#1D1E28 98%));
+ --color: white;
+ --border-color: rgba(255, 255, 255, .1);
+}
diff --git a/themes/terminal/assets/css/color/green.css b/themes/terminal/assets/css/color/green.css
new file mode 100644
index 0000000..7419172
--- /dev/null
+++ b/themes/terminal/assets/css/color/green.css
@@ -0,0 +1,14 @@
+@import '../main.css';
+@import '../header.css';
+@import '../logo.css';
+@import '../pagination.css';
+@import '../post.css';
+@import '../syntax.css';
+@import '../variables.css';
+
+:root {
+ --accent: #78E2A0;
+ --background: color-mod(var(--accent) blend(#1D1E28 98%));
+ --color: white;
+ --border-color: rgba(255, 255, 255, .1);
+}
diff --git a/themes/terminal/assets/css/color/pink.css b/themes/terminal/assets/css/color/pink.css
new file mode 100644
index 0000000..7fedad0
--- /dev/null
+++ b/themes/terminal/assets/css/color/pink.css
@@ -0,0 +1,14 @@
+@import '../main.css';
+@import '../header.css';
+@import '../logo.css';
+@import '../pagination.css';
+@import '../post.css';
+@import '../syntax.css';
+@import '../variables.css';
+
+:root {
+ --accent: #EE72F1;
+ --background: color-mod(var(--accent) blend(#1D1E28 98%));
+ --color: white;
+ --border-color: rgba(255, 255, 255, .1);
+}
diff --git a/themes/terminal/assets/css/color/red.css b/themes/terminal/assets/css/color/red.css
new file mode 100644
index 0000000..a58f641
--- /dev/null
+++ b/themes/terminal/assets/css/color/red.css
@@ -0,0 +1,14 @@
+@import '../main.css';
+@import '../header.css';
+@import '../logo.css';
+@import '../pagination.css';
+@import '../post.css';
+@import '../syntax.css';
+@import '../variables.css';
+
+:root {
+ --accent: #FF6266;
+ --background: color-mod(var(--accent) blend(#1D1E28 98%));
+ --color: white;
+ --border-color: rgba(255, 255, 255, .1);
+}
diff --git a/themes/terminal/assets/css/font.css b/themes/terminal/assets/css/font.css
new file mode 100644
index 0000000..6bc5f52
--- /dev/null
+++ b/themes/terminal/assets/css/font.css
@@ -0,0 +1,17 @@
+@font-face {
+ font-display: swap;
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 400;
+ src: url("../fonts/FiraCode-Regular.woff") format("woff");
+ font-display: swap;
+}
+
+@font-face {
+ font-display: swap;
+ font-family: 'Fira Code';
+ font-style: normal;
+ font-weight: 800;
+ src: url("../fonts/FiraCode-Bold.woff") format("woff");
+ font-display: swap;
+}
diff --git a/themes/terminal/assets/css/footer.css b/themes/terminal/assets/css/footer.css
new file mode 100644
index 0000000..bac4ec0
--- /dev/null
+++ b/themes/terminal/assets/css/footer.css
@@ -0,0 +1,50 @@
+.footer {
+ padding: 40px 0;
+ flex-grow: 0;
+ opacity: .5;
+
+ &__inner {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin: 0;
+ width: 760px;
+ max-width: 100%;
+
+ @media (--tablet) {
+ flex-direction: column;
+ }
+ }
+
+ a {
+ color: inherit;
+ }
+
+ .copyright {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ font-size: 1rem;
+ color: var(--light-color-secondary);
+
+ &--user {
+ margin: auto;
+ text-align: center;
+ }
+
+ & > *:first-child:not(:only-child) {
+ margin-right: 10px;
+
+ @media (--tablet) {
+ border: none;
+ padding: 0;
+ margin: 0;
+ }
+ }
+
+ @media (--tablet) {
+ flex-direction: column;
+ margin-top: 10px;
+ }
+ }
+}
diff --git a/themes/terminal/assets/css/gist.css b/themes/terminal/assets/css/gist.css
new file mode 100644
index 0000000..3ed8145
--- /dev/null
+++ b/themes/terminal/assets/css/gist.css
@@ -0,0 +1,6 @@
+body .gist .blob-num /* line numbers */,
+body .gist .blob-code-inner
+{
+ border: none;
+}
+
diff --git a/themes/terminal/assets/css/header.css b/themes/terminal/assets/css/header.css
new file mode 100644
index 0000000..cc8098f
--- /dev/null
+++ b/themes/terminal/assets/css/header.css
@@ -0,0 +1,162 @@
+@define-mixin menu {
+ position: absolute;
+ background: var(--background);
+ box-shadow: var(--shadow);
+ color: white;
+ border: 2px solid;
+ margin: 0;
+ padding: 10px;
+ list-style: none;
+ z-index: 99;
+}
+
+.header {
+ display: flex;
+ flex-direction: column;
+ position: relative;
+
+ @media print {
+ display: none;
+ }
+
+ &__inner {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+
+ &__logo {
+ display: flex;
+ flex: 1;
+
+ &:after {
+ content: '';
+ background: repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, transparent 0, transparent 10px);
+ display: block;
+ width: 100%;
+ right: 10px;
+ }
+
+ a {
+ flex: 0 0 auto;
+ max-width: 100%;
+ text-decoration: none;
+ }
+ }
+
+ .menu {
+ --shadow-color: color-mod(var(--background) a(80%));
+ --shadow: 0 10px var(--shadow-color), -10px 10px var(--shadow-color), 10px 10px var(--shadow-color);
+ margin: 20px 1px;
+
+ @media (--phone) {
+ @mixin menu;
+ top: 50px;
+ right: 0;
+ }
+
+ &__inner {
+ display: flex;
+ flex-wrap: wrap;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ &--desktop {
+ @media (--phone) {
+ display: none;
+ }
+ }
+
+ &--mobile {
+ display: none;
+
+ @media (--phone) {
+ display: block;
+ }
+ }
+
+ li {
+ &:not(:last-of-type) {
+ margin-right: 20px;
+ margin-bottom: 10px;
+ flex: 0 0 auto;
+ }
+ }
+
+ @media (--phone) {
+ flex-direction: column;
+ align-items: flex-start;
+ padding: 0;
+
+ li {
+ margin: 0;
+ padding: 5px;
+ }
+ }
+ }
+
+ &__sub-inner {
+ position: relative;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+
+ &:not(:only-child) {
+ margin-left: 20px;
+ }
+
+ &-more {
+ @mixin menu;
+ top: 35px;
+ left: 0;
+
+ &-trigger {
+ color: var(--accent);
+ user-select: none;
+ cursor: pointer;
+ }
+
+ li {
+ margin: 0;
+ padding: 5px;
+ white-space: nowrap;
+ }
+ }
+ }
+
+ .spacer {
+ flex-grow: 1;
+ }
+
+ .language-selector {
+ position: relative;
+ list-style: none;
+ margin: 0;
+
+ &-current {
+ list-style-type: none;
+ display: flex;
+ flex-direction: row;
+ color: var(--accent);
+ cursor: pointer;
+ margin: 0;
+ }
+
+ &__more {
+ @mixin menu;
+ top: 35px;
+ right: 0;
+ }
+ }
+
+ &-trigger {
+ color: var(--accent);
+ border: 2px solid;
+ margin-left: 10px;
+ height: 100%;
+ padding: 3px 8px;
+ position: relative;
+ }
+ }
+}
diff --git a/themes/terminal/assets/css/logo.css b/themes/terminal/assets/css/logo.css
new file mode 100644
index 0000000..d455cc7
--- /dev/null
+++ b/themes/terminal/assets/css/logo.css
@@ -0,0 +1,8 @@
+.logo {
+ display: flex;
+ align-items: center;
+ text-decoration: none;
+ background: var(--accent);
+ color: black;
+ padding: 5px 10px;
+}
diff --git a/themes/terminal/assets/css/main.css b/themes/terminal/assets/css/main.css
new file mode 100644
index 0000000..8929ea1
--- /dev/null
+++ b/themes/terminal/assets/css/main.css
@@ -0,0 +1,346 @@
+html {
+ box-sizing: border-box;
+}
+
+*,
+*:before,
+*:after {
+ box-sizing: inherit;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace;
+ font-size: 1rem;
+ line-height: 1.54;
+ letter-spacing: -0.02em;
+ background-color: color-mod(var(--accent) blend(#1D1E28 98%));
+ color: var(--color);
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ font-feature-settings: "liga", "tnum", "zero", "ss01", "locl";
+ font-variant-ligatures: contextual;
+ -webkit-overflow-scrolling: touch;
+ -webkit-text-size-adjust: 100%;
+
+ @media (--phone) {
+ font-size: 1rem;
+ }
+}
+
+.headings--one-size {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ line-height: 1.3;
+
+ &:not(first-child) {
+ margin-top: 40px;
+ }
+ }
+
+ h1,
+ h2,
+ h3 {
+ font-size: 1.4rem;
+ }
+
+ h4,
+ h5,
+ h6 {
+ font-size: 1.2rem;
+ }
+}
+
+a {
+ color: inherit;
+
+ /* Waiting for a better times... */
+ /* &:has(code) {
+ text-decoration-color: var(--accent);
+ } */
+}
+
+img {
+ display: block;
+ max-width: 100%;
+
+ &.left {
+ margin-right: auto;
+ }
+
+ &.center {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ &.right {
+ margin-left: auto;
+ }
+}
+
+p {
+ margin-bottom: 20px;
+}
+
+figure {
+ display: table;
+ max-width: 100%;
+ margin: 25px 0;
+
+ &.left {
+ margin-right: auto;
+ }
+
+ &.center {
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ &.right {
+ margin-left: auto;
+ }
+
+ figcaption {
+ font-size: 14px;
+ padding: 5px 10px;
+ margin-top: 5px;
+ background: var(--accent);
+ color: var(--background);
+ /* opacity: .8; */
+
+ &.left {
+ text-align: left;
+ }
+
+ &.center {
+ text-align: center;
+ }
+
+ &.right {
+ text-align: right;
+ }
+ }
+}
+
+code, kbd {
+ font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace !important;
+ font-feature-settings: normal;
+ background: color-mod(var(--accent) a(20%));
+ color: var(--accent);
+ padding: 1px 6px;
+ margin: 0 2px;
+ font-size: .95rem;
+
+ code, kbd {
+ background: transparent;
+ padding: 0;
+ margin: 0;
+ }
+}
+
+pre {
+ background: transparent !important;
+ padding: 20px 10px;
+ margin: 40px 0;
+ font-size: .95rem !important;
+ overflow: auto;
+ border-top: 1px solid rgba(255, 255, 255, .1);
+ border-bottom: 1px solid rgba(255, 255, 255, .1);
+
+ + pre {
+ border-top: 0;
+ margin-top: -40px;
+ }
+
+ @media (--phone) {
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ }
+
+ code {
+ background: none !important;
+ margin: 0;
+ padding: 0;
+ font-size: inherit;
+ border: none;
+ }
+}
+
+blockquote {
+ border-top: 1px solid var(--accent);
+ border-bottom: 1px solid var(--accent);
+ margin: 40px 0;
+ padding: 25px;
+
+ @media (--phone) {
+ padding-right: 0;
+ }
+
+ p:first-of-type {
+ margin-top: 0;
+ }
+
+ p:last-of-type {
+ margin-bottom: 0;
+ }
+
+ p {
+ position: relative;
+ }
+
+ p:first-of-type:before {
+ content: '>';
+ display: block;
+ position: absolute;
+ left: -25px;
+ color: var(--accent);
+ }
+
+ &.twitter-tweet {
+ position: relative;
+ background: color-mod(var(--accent) a(10%));
+ font: inherit;
+ color: inherit;
+ border: 1px solid var(--accent);
+ padding-top: 60px;
+
+ p:before {
+ content: '';
+ }
+
+ &:before {
+ content: '> From Twitter:';
+ position: absolute;
+ top: 20px;
+ color: var(--accent);
+ font-weight: bold;
+ }
+
+ a {
+ color: var(--accent);
+ }
+ }
+}
+
+table {
+ table-layout: auto;
+ border-collapse: collapse;
+ width: 100%;
+ margin: 40px 0;
+}
+
+table,
+th,
+td {
+ border: 1px dashed var(--accent);
+ padding: 10px;
+}
+
+th {
+ color: var(--accent);
+}
+
+ul,
+ol {
+ margin-left: 22px;
+ padding: 0;
+
+ li {
+ position: relative;
+ }
+
+ @media (--phone) {
+ margin-left: 20px;
+ }
+}
+
+ol {
+ list-style: none;
+ counter-reset: li;
+
+ li {
+ counter-increment: li;
+ }
+
+ li:before {
+ content: counter(li);
+ position: absolute;
+ right: calc(100% + 10px);
+ color: var(--accent);
+ display: inline-block;
+ text-align: right;
+ }
+
+ ol {
+ margin-left: 38px;
+
+ li {
+ counter-increment: li;
+ }
+
+ li:before {
+ content: counters(li, ".") " ";
+ }
+ }
+}
+
+mark {
+ background: var(--accent);
+ color: var(--background);
+}
+
+.container {
+ display: flex;
+ flex-direction: column;
+ padding: 40px;
+ max-width: 864px;
+ min-height: 100vh;
+ border-right: 1px solid rgba(255, 255, 255, 0.1);
+
+ &.full,
+ &.center {
+ border: none;
+ margin: 0 auto;
+ }
+
+ &.full {
+ max-width: 100%;
+ }
+
+ @media (--phone) {
+ padding: 20px;
+ }
+
+ @media print {
+ display: initial;
+ }
+}
+
+.content {
+ display: flex;
+ flex-direction: column;
+
+ @media print {
+ display: initial;
+ }
+}
+
+hr {
+ width: 100%;
+ border: none;
+ background: var(--border-color);
+ height: 1px;
+}
+
+.hidden {
+ display: none;
+}
+
+sup {
+ line-height: 0;
+}
diff --git a/themes/terminal/assets/css/pagination.css b/themes/terminal/assets/css/pagination.css
new file mode 100644
index 0000000..30dbadc
--- /dev/null
+++ b/themes/terminal/assets/css/pagination.css
@@ -0,0 +1,86 @@
+.pagination {
+ margin-top: 50px;
+
+ @media print {
+ display: none;
+ }
+
+ &__title {
+ display: flex;
+ text-align: center;
+ position: relative;
+ margin: 100px 0 20px;
+
+ &-h {
+ text-align: center;
+ margin: 0 auto;
+ padding: 5px 10px;
+ background: color-mod(var(--accent) blend(#1D1E28 98%));
+ font-size: .8rem;
+ text-transform: uppercase;
+ text-decoration: none;
+ letter-spacing: .1em;
+ z-index: 1;
+ }
+
+ hr {
+ position: absolute;
+ left: 0;
+ right: 0;
+ width: 100%;
+ margin-top: 15px;
+ z-index: 0;
+ }
+ }
+
+ &__buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ a {
+ text-decoration: none;
+ }
+ }
+}
+
+.button {
+ position: relative;
+ display: inline-flex;
+ flex: 1;
+ align-items: center;
+ justify-content: center;
+ font-size: 1rem;
+ border-radius: 8px;
+ padding: 0;
+ cursor: pointer;
+ appearance: none;
+ overflow: hidden;
+
+ + .button {
+ margin-left: 10px;
+ }
+
+ a {
+ display: flex;
+ padding: 8px 16px;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ &__text {
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ &.next .button__icon {
+ margin-left: 8px;
+ }
+
+ &.previous .button__icon {
+ margin-right: 8px;
+ }
+}
diff --git a/themes/terminal/assets/css/post.css b/themes/terminal/assets/css/post.css
new file mode 100644
index 0000000..37155bc
--- /dev/null
+++ b/themes/terminal/assets/css/post.css
@@ -0,0 +1,132 @@
+.index-content {
+ margin-top: 20px;
+}
+
+.framed {
+ border: 1px solid var(--accent);
+ padding: 20px;
+
+ *:first-child {
+ margin-top: 0;
+ }
+
+ *:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.posts {
+ width: 100%;
+}
+
+.post {
+ width: 100%;
+ text-align: left;
+ margin: 20px auto;
+ padding: 20px 0;
+
+ @media (--tablet) {
+ max-width: 660px;
+ }
+
+ &:not(:last-of-type) {
+ border-bottom: 1px solid var(--border-color);
+ }
+
+ &-meta {
+ font-size: 1rem;
+ margin-bottom: 10px;
+ color: color-mod(var(--accent) a(70%));
+ }
+
+ &-title {
+ --border: 3px dotted var(--accent);
+ position: relative;
+ color: var(--accent);
+ margin: 0 0 15px;
+ padding-bottom: 15px;
+ border-bottom: var(--border);
+
+ &:after {
+ content: '';
+ position: absolute;
+ bottom: 2px;
+ display: block;
+ width: 100%;
+ border-bottom: var(--border);
+ }
+
+ a {
+ text-decoration: none;
+ }
+ }
+
+ &-tags {
+ display: block;
+ margin-bottom: 20px;
+ font-size: 1rem;
+ opacity: .5;
+
+ a {
+ text-decoration: none;
+ }
+ }
+
+ &-content {
+ margin-top: 30px;
+ }
+
+ &-cover {
+ border: 20px solid var(--accent);
+ background: transparent;
+ margin: 40px 0;
+ padding: 20px;
+
+ @media (--phone) {
+ padding: 10px;
+ border-width: 10px;
+ }
+ }
+
+ ul {
+ list-style: none;
+
+ li:not(:empty):before {
+ content: '-';
+ position: absolute;
+ left: -20px;
+ color: var(--accent);
+ }
+ }
+}
+
+.post--regulation {
+ h1 {
+ justify-content: center;
+ }
+
+ h2 {
+ justify-content: center;
+ margin-bottom: 10px;
+
+ & + h2 {
+ margin-top: -10px;
+ margin-bottom: 20px;
+ }
+ }
+}
+
+.hanchor {
+ color: color-mod(var(--accent) alpha(90%));
+ text-decoration: none;
+ margin-left: 10px;
+ visibility: hidden;
+}
+
+h1:hover a, h2:hover a, h3:hover a, h4:hover a {
+ visibility: visible;
+}
+
+.footnotes {
+ color: color-mod(var(--color) alpha(50%));
+}
diff --git a/themes/terminal/assets/css/prism.css b/themes/terminal/assets/css/prism.css
new file mode 100644
index 0000000..e4268ae
--- /dev/null
+++ b/themes/terminal/assets/css/prism.css
@@ -0,0 +1,336 @@
+/* PrismJS 1.24.1
+https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+actionscript+apacheconf+applescript+bash+c+csharp+cpp+cmake+coffeescript+csp+css-extras+diff+django+docker+elixir+elm+erlang+fsharp+flow+git+go+graphql+haml+handlebars+haskell+http+java+json+kotlin+latex+less+llvm+makefile+markdown+markup-templating+nasm+objectivec+ocaml+perl+php+php-extras+powershell+processing+pug+python+r+jsx+tsx+reason+ruby+rust+sass+scss+scala+scheme+sql+stylus+swift+textile+toml+twig+typescript+vim+visual-basic+wasm+yaml&plugins=line-highlight+line-numbers+jsonp-highlight+highlight-keywords+command-line+toolbar+copy-to-clipboard */
+/**
+ * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
+ * Based on https://github.com/chriskempson/tomorrow-theme
+ * @author Rose Pritchard
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+ color: #ccc;
+ background: none;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ font-size: 1em;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ padding: 1em;
+ margin: .5em 0;
+ overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+ background: #2d2d2d;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.block-comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: #999;
+}
+
+.token.punctuation {
+ color: #ccc;
+}
+
+.token.tag,
+.token.attr-name,
+.token.namespace,
+.token.deleted {
+ color: #e2777a;
+}
+
+.token.function-name {
+ color: #6196cc;
+}
+
+.token.boolean,
+.token.number,
+.token.function {
+ color: #f08d49;
+}
+
+.token.property,
+.token.class-name,
+.token.constant,
+.token.symbol {
+ color: #f8c555;
+}
+
+.token.selector,
+.token.important,
+.token.atrule,
+.token.keyword,
+.token.builtin {
+ color: #cc99cd;
+}
+
+.token.string,
+.token.char,
+.token.attr-value,
+.token.regex,
+.token.variable {
+ color: #7ec699;
+}
+
+.token.operator,
+.token.entity,
+.token.url {
+ color: #67cdcc;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.inserted {
+ color: green;
+}
+
+pre[data-line] {
+ position: relative;
+ padding: 1em 0 1em 3em;
+}
+
+.line-highlight {
+ position: absolute;
+ left: 0;
+ right: 0;
+ padding: inherit 0;
+ margin-top: 1em; /* Same as .prism’s padding-top */
+
+ background: hsla(24, 20%, 50%,.08);
+ background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+
+ pointer-events: none;
+
+ line-height: inherit;
+ white-space: pre;
+}
+
+@media print {
+ .line-highlight {
+ /*
+ * This will prevent browsers from replacing the background color with white.
+ * It's necessary because the element is layered on top of the displayed code.
+ */
+ -webkit-print-color-adjust: exact;
+ color-adjust: exact;
+ }
+}
+
+ .line-highlight:before,
+ .line-highlight[data-end]:after {
+ content: attr(data-start);
+ position: absolute;
+ top: .4em;
+ left: .6em;
+ min-width: 1em;
+ padding: 0 .5em;
+ background-color: hsla(24, 20%, 50%,.4);
+ color: hsl(24, 20%, 95%);
+ font: bold 65%/1.5 sans-serif;
+ text-align: center;
+ vertical-align: .3em;
+ border-radius: 999px;
+ text-shadow: none;
+ box-shadow: 0 1px white;
+ }
+
+ .line-highlight[data-end]:after {
+ content: attr(data-end);
+ top: auto;
+ bottom: .4em;
+ }
+
+.line-numbers .line-highlight:before,
+.line-numbers .line-highlight:after {
+ content: none;
+}
+
+pre[id].linkable-line-numbers span.line-numbers-rows {
+ pointer-events: all;
+}
+pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
+ cursor: pointer;
+}
+pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
+ background-color: rgba(128, 128, 128, .2);
+}
+
+pre[class*="language-"].line-numbers {
+ position: relative;
+ padding-left: 3.8em;
+ counter-reset: linenumber;
+}
+
+pre[class*="language-"].line-numbers > code {
+ position: relative;
+ white-space: inherit;
+}
+
+.line-numbers .line-numbers-rows {
+ position: absolute;
+ pointer-events: none;
+ top: 0;
+ font-size: 100%;
+ left: -3.8em;
+ width: 3em; /* works for line-numbers below 1000 lines */
+ letter-spacing: -1px;
+ border-right: 1px solid #999;
+
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+
+}
+
+ .line-numbers-rows > span {
+ display: block;
+ counter-increment: linenumber;
+ }
+
+ .line-numbers-rows > span:before {
+ content: counter(linenumber);
+ color: #999;
+ display: block;
+ padding-right: 0.8em;
+ text-align: right;
+ }
+
+.command-line-prompt {
+ border-right: 1px solid #999;
+ display: block;
+ float: left;
+ font-size: 100%;
+ letter-spacing: -1px;
+ margin-right: 1em;
+ pointer-events: none;
+
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.command-line-prompt > span:before {
+ color: #999;
+ content: ' ';
+ display: block;
+ padding-right: 0.8em;
+}
+
+.command-line-prompt > span[data-user]:before {
+ content: "[" attr(data-user) "@" attr(data-host) "] $";
+}
+
+.command-line-prompt > span[data-user="root"]:before {
+ content: "[" attr(data-user) "@" attr(data-host) "] #";
+}
+
+.command-line-prompt > span[data-prompt]:before {
+ content: attr(data-prompt);
+}
+
+div.code-toolbar {
+ position: relative;
+}
+
+div.code-toolbar > .toolbar {
+ position: absolute;
+ top: .3em;
+ right: .2em;
+ transition: opacity 0.3s ease-in-out;
+ opacity: 0;
+}
+
+div.code-toolbar:hover > .toolbar {
+ opacity: 1;
+}
+
+/* Separate line b/c rules are thrown out if selector is invalid.
+ IE11 and old Edge versions don't support :focus-within. */
+div.code-toolbar:focus-within > .toolbar {
+ opacity: 1;
+}
+
+div.code-toolbar > .toolbar > .toolbar-item {
+ display: inline-block;
+}
+
+div.code-toolbar > .toolbar > .toolbar-item > a {
+ cursor: pointer;
+}
+
+div.code-toolbar > .toolbar > .toolbar-item > button {
+ background: none;
+ border: 0;
+ color: inherit;
+ font: inherit;
+ line-height: normal;
+ overflow: visible;
+ padding: 0;
+ -webkit-user-select: none; /* for button */
+ -moz-user-select: none;
+ -ms-user-select: none;
+}
+
+div.code-toolbar > .toolbar > .toolbar-item > a,
+div.code-toolbar > .toolbar > .toolbar-item > button,
+div.code-toolbar > .toolbar > .toolbar-item > span {
+ color: #bbb;
+ font-size: .8em;
+ padding: 0 .5em;
+ background: #f5f2f0;
+ background: rgba(224, 224, 224, 0.2);
+ box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
+ border-radius: .5em;
+}
+
+div.code-toolbar > .toolbar > .toolbar-item > a:hover,
+div.code-toolbar > .toolbar > .toolbar-item > a:focus,
+div.code-toolbar > .toolbar > .toolbar-item > button:hover,
+div.code-toolbar > .toolbar > .toolbar-item > button:focus,
+div.code-toolbar > .toolbar > .toolbar-item > span:hover,
+div.code-toolbar > .toolbar > .toolbar-item > span:focus {
+ color: inherit;
+ text-decoration: none;
+}
+
diff --git a/themes/terminal/assets/css/style.css b/themes/terminal/assets/css/style.css
new file mode 100644
index 0000000..c0424c4
--- /dev/null
+++ b/themes/terminal/assets/css/style.css
@@ -0,0 +1,17 @@
+@import 'variables.css';
+
+@import 'font.css';
+@import 'buttons.css';
+
+@import 'header.css';
+@import 'logo.css';
+@import 'main.css';
+@import 'post.css';
+@import 'pagination.css';
+@import 'footer.css';
+
+@import 'prism.css';
+@import 'syntax.css';
+@import 'code.css';
+@import 'terms.css';
+@import 'gist.css';
diff --git a/themes/terminal/assets/css/syntax.css b/themes/terminal/assets/css/syntax.css
new file mode 100644
index 0000000..215aa82
--- /dev/null
+++ b/themes/terminal/assets/css/syntax.css
@@ -0,0 +1,156 @@
+code.language-css,
+code.language-scss,
+.token.boolean,
+.token.string,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.language-scss .token.string,
+.style .token.string,
+.token.attr-value,
+.token.keyword,
+.token.control,
+.token.directive,
+.token.statement,
+.token.regex,
+.token.atrule,
+.token.number,
+.token.inserted,
+.token.important {
+ color: var(--accent) !important;
+}
+
+.token.tag-id,
+.token.atrule-id,
+.token.operator,
+.token.unit,
+.token.placeholder,
+.token.variable,
+.token.tag,
+.token.attr-name,
+.token.namespace,
+.token.deleted,
+.token.property,
+.token.class-name,
+.token.constant,
+.token.symbol {
+ color: color-mod(var(--accent) a(70%)) !important;
+}
+
+.token.property,
+.token.function,
+.token.function-name,
+.token.deleted,
+code.language-javascript,
+code.language-html,
+.command-line-prompt > span:before {
+ color: color-mod(var(--accent) blend(#999 90%)) !important;
+}
+
+.token.selector,
+.token.tag,
+.token.punctuation {
+ color: white;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: rgba(255, 255, 255, .3) !important;
+}
+
+.token.namespace {
+ opacity: .7 !important;
+}
+
+pre[data-line] {
+ position: relative;
+}
+
+pre[class*="language-"] {
+ margin: 0;
+ padding: 0;
+ overflow: auto;
+}
+
+.line-highlight {
+ position: absolute;
+ left: 0;
+ right: 0;
+ padding: 0;
+ margin: 0;
+ background: color-mod(var(--accent) blend(#999 90%) a(8%));
+ pointer-events: none;
+ line-height: inherit;
+ white-space: pre;
+}
+
+.line-highlight:before,
+.line-highlight[data-end]:after {
+ content: attr(data-start);
+ position: absolute;
+ /* top: .4em; */
+ left: .6em;
+ min-width: 1em;
+ padding: 0 .5em;
+ background-color: hsla(24, 20%, 50%, .4);
+ color: hsl(24, 20%, 95%);
+ font: bold 65%/1.5 sans-serif;
+ text-align: center;
+ vertical-align: .3em;
+ border-radius: 999px;
+ text-shadow: none;
+ box-shadow: 0 1px white;
+}
+
+.line-highlight[data-end]:after {
+ content: attr(data-end);
+ top: auto;
+ bottom: .4em;
+}
+
+.line-numbers .line-highlight:before,
+.line-numbers .line-highlight:after {
+ content: none;
+}
+
+:root {
+ --code-margin: 40px;
+}
+
+.code-toolbar {
+ position: relative;
+ margin: var(--code-margin) 0;
+ padding: 20px;
+ border: 1px solid rgba(255, 255, 255, .1);
+
+ + .code-toolbar,
+ + .highlight,
+ + .highlight .code-toolbar {
+ border-top: 0;
+ margin-top: calc(-1 * var(--code-margin));
+ }
+
+ pre, code {
+ border: none;
+ }
+
+ code {
+ display: block;
+ color: inherit;
+ }
+
+ > .toolbar {
+ button {
+ font-size: .8em !important;
+ background: hsla(0,0%,87.8%,.2) !important;
+ color: #bbb !important;
+ box-shadow: 0 2px 0 0 rgba(0,0,0,.2) !important;
+ border-radius: 0 !important;
+ margin: 6px !important;
+ padding: 10px !important;
+ user-select:none
+ }
+ }
+}
diff --git a/themes/terminal/assets/css/terms.css b/themes/terminal/assets/css/terms.css
new file mode 100644
index 0000000..794e2fa
--- /dev/null
+++ b/themes/terminal/assets/css/terms.css
@@ -0,0 +1,9 @@
+.terms {
+ h1 {
+ color: var(--accent);
+ }
+
+ h3 {
+ font-size: initial;
+ }
+}
diff --git a/themes/terminal/assets/css/variables.css b/themes/terminal/assets/css/variables.css
new file mode 100644
index 0000000..33fd8d8
--- /dev/null
+++ b/themes/terminal/assets/css/variables.css
@@ -0,0 +1,13 @@
+:root {
+ --accent: #FFA86A;
+ --background: color-mod(var(--accent) blend(#1D1E28 98%));
+ --color: white;
+ --border-color: rgba(255, 255, 255, .1);
+
+ /* variables for js, must be the same as these in @custom-media queries */
+ --phoneWidth: (max-width: 684px);
+ --tabletWidth: (max-width: 900px);
+}
+
+@custom-media --phone (max-width: 684px);
+@custom-media --tablet (max-width: 900px);