aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/xemd2html.wasmbin5933469 -> 6092094 bytes
-rw-r--r--lib/xesite_templates/src/lib.rs6
-rw-r--r--static/css/preflight.css15
-rw-r--r--static/css/tailwind.css818
-rw-r--r--tmpl/base.html19
-rw-r--r--tmpl/blogindex.html18
-rw-r--r--tmpl/convsnippet.html17
-rw-r--r--tmpl/index.html11
8 files changed, 192 insertions, 712 deletions
diff --git a/bin/xemd2html.wasm b/bin/xemd2html.wasm
index 0ba1860..3fca7f9 100755
--- a/bin/xemd2html.wasm
+++ b/bin/xemd2html.wasm
Binary files differ
diff --git a/lib/xesite_templates/src/lib.rs b/lib/xesite_templates/src/lib.rs
index de38177..85063c1 100644
--- a/lib/xesite_templates/src/lib.rs
+++ b/lib/xesite_templates/src/lib.rs
@@ -59,15 +59,15 @@ pub fn conv(name: String, mood: String, body: Markup) -> Markup {
let name = name.replace('_', " ");
html! {
- .conversation {
- ."conversation-standalone" {
+ ."my-4 flex space-x-4 rounded-md border border-solid border-gray-light bg-bg-2 p-3 dark:border-grayDark-dark dark:bg-bgDark2" {
+ ."flex h-16 w-16 shrink-0 items-center justify-center self-center overflow-hidden rounded-lg" {
picture {
source type="image/avif" srcset={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".avif"};
source type="image/webp" srcset={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".webp"};
img style="max-height:4.5rem" alt={(name) " is " (mood)} loading="lazy" src={"https://cdn.xeiaso.net/file/christine-static/stickers/" (name_lower) "/" (mood) ".png"};
}
}
- ."conversation-chat" {
+ ."min-w-0 self-center" {
"<"
a href={"/characters#" (name_lower)} { b { (name) } }
"> "
diff --git a/static/css/preflight.css b/static/css/preflight.css
new file mode 100644
index 0000000..2ad4e61
--- /dev/null
+++ b/static/css/preflight.css
@@ -0,0 +1,15 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ a {
+ @apply text-blue-dark;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ a {
+ @apply text-blueDark-light;
+ }
+ }
+} \ No newline at end of file
diff --git a/static/css/tailwind.css b/static/css/tailwind.css
index 1b0f384..2662fb9 100644
--- a/static/css/tailwind.css
+++ b/static/css/tailwind.css
@@ -605,6 +605,18 @@ select {
outline: 1px auto -webkit-focus-ring-color;
}
+a {
+ --tw-text-opacity: 1;
+ color: rgb(7 102 120 / var(--tw-text-opacity));
+}
+
+@media (prefers-color-scheme: dark) {
+ a {
+ --tw-text-opacity: 1;
+ color: rgb(131 165 152 / var(--tw-text-opacity));
+ }
+}
+
*, ::before, ::after {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
@@ -705,512 +717,6 @@ select {
--tw-backdrop-sepia: ;
}
-.prose {
- color: var(--tw-prose-body);
- max-width: 65ch;
-}
-
-.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 1.25em;
- margin-bottom: 1.25em;
-}
-
-.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-lead);
- font-size: 1.25em;
- line-height: 1.6;
- margin-top: 1.2em;
- margin-bottom: 1.2em;
-}
-
-.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-links);
- text-decoration: underline;
- font-weight: 500;
-}
-
-.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-bold);
- font-weight: 600;
-}
-
-.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: decimal;
- margin-top: 1.25em;
- margin-bottom: 1.25em;
- padding-left: 1.625em;
-}
-
-.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: upper-alpha;
-}
-
-.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: lower-alpha;
-}
-
-.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: upper-alpha;
-}
-
-.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: lower-alpha;
-}
-
-.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: upper-roman;
-}
-
-.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: lower-roman;
-}
-
-.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: upper-roman;
-}
-
-.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: lower-roman;
-}
-
-.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: decimal;
-}
-
-.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- list-style-type: disc;
- margin-top: 1.25em;
- margin-bottom: 1.25em;
- padding-left: 1.625em;
-}
-
-.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
- font-weight: 400;
- color: var(--tw-prose-counters);
-}
-
-.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
- color: var(--tw-prose-bullets);
-}
-
-.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 600;
- margin-top: 1.25em;
-}
-
-.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- border-color: var(--tw-prose-hr);
- border-top-width: 1px;
- margin-top: 3em;
- margin-bottom: 3em;
-}
-
-.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 500;
- font-style: italic;
- color: var(--tw-prose-quotes);
- border-left-width: 0.25rem;
- border-left-color: var(--tw-prose-quote-borders);
- quotes: "\201C""\201D""\2018""\2019";
- margin-top: 1.6em;
- margin-bottom: 1.6em;
- padding-left: 1em;
-}
-
-.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
- content: open-quote;
-}
-
-.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
- content: close-quote;
-}
-
-.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 800;
- font-size: 2.25em;
- margin-top: 0;
- margin-bottom: 0.8888889em;
- line-height: 1.1111111;
-}
-
-.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 900;
- color: inherit;
-}
-
-.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 700;
- font-size: 1.5em;
- margin-top: 2em;
- margin-bottom: 1em;
- line-height: 1.3333333;
-}
-
-.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 800;
- color: inherit;
-}
-
-.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 600;
- font-size: 1.25em;
- margin-top: 1.6em;
- margin-bottom: 0.6em;
- line-height: 1.6;
-}
-
-.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 700;
- color: inherit;
-}
-
-.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 600;
- margin-top: 1.5em;
- margin-bottom: 0.5em;
- line-height: 1.5;
-}
-
-.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 700;
- color: inherit;
-}
-
-.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 2em;
- margin-bottom: 2em;
-}
-
-.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- display: block;
- margin-top: 2em;
- margin-bottom: 2em;
-}
-
-.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- font-weight: 500;
- font-family: inherit;
- color: var(--tw-prose-kbd);
- box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);
- font-size: 0.875em;
- border-radius: 0.3125rem;
- padding-top: 0.1875em;
- padding-right: 0.375em;
- padding-bottom: 0.1875em;
- padding-left: 0.375em;
-}
-
-.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-code);
- font-weight: 600;
- font-size: 0.875em;
-}
-
-.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
- content: "`";
-}
-
-.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
- content: "`";
-}
-
-.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
- font-size: 0.875em;
-}
-
-.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
- font-size: 0.9em;
-}
-
-.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: inherit;
-}
-
-.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-pre-code);
- background-color: var(--tw-prose-pre-bg);
- overflow-x: auto;
- font-weight: 400;
- font-size: 0.875em;
- line-height: 1.7142857;
- margin-top: 1.7142857em;
- margin-bottom: 1.7142857em;
- border-radius: 0.375rem;
- padding-top: 0.8571429em;
- padding-right: 1.1428571em;
- padding-bottom: 0.8571429em;
- padding-left: 1.1428571em;
-}
-
-.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- background-color: transparent;
- border-width: 0;
- border-radius: 0;
- padding: 0;
- font-weight: inherit;
- color: inherit;
- font-size: inherit;
- font-family: inherit;
- line-height: inherit;
-}
-
-.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
- content: none;
-}
-
-.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
- content: none;
-}
-
-.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- width: 100%;
- table-layout: auto;
- text-align: left;
- margin-top: 2em;
- margin-bottom: 2em;
- font-size: 0.875em;
- line-height: 1.7142857;
-}
-
-.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- border-bottom-width: 1px;
- border-bottom-color: var(--tw-prose-th-borders);
-}
-
-.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-headings);
- font-weight: 600;
- vertical-align: bottom;
- padding-right: 0.5714286em;
- padding-bottom: 0.5714286em;
- padding-left: 0.5714286em;
-}
-
-.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- border-bottom-width: 1px;
- border-bottom-color: var(--tw-prose-td-borders);
-}
-
-.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- border-bottom-width: 0;
-}
-
-.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- vertical-align: baseline;
-}
-
-.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- border-top-width: 1px;
- border-top-color: var(--tw-prose-th-borders);
-}
-
-.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- vertical-align: top;
-}
-
-.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- color: var(--tw-prose-captions);
- font-size: 0.875em;
- line-height: 1.4285714;
- margin-top: 0.8571429em;
-}
-
-.prose {
- --tw-prose-body: #374151;
- --tw-prose-headings: #111827;
- --tw-prose-lead: #4b5563;
- --tw-prose-links: #111827;
- --tw-prose-bold: #111827;
- --tw-prose-counters: #6b7280;
- --tw-prose-bullets: #d1d5db;
- --tw-prose-hr: #e5e7eb;
- --tw-prose-quotes: #111827;
- --tw-prose-quote-borders: #e5e7eb;
- --tw-prose-captions: #6b7280;
- --tw-prose-kbd: #111827;
- --tw-prose-kbd-shadows: 17 24 39;
- --tw-prose-code: #111827;
- --tw-prose-pre-code: #e5e7eb;
- --tw-prose-pre-bg: #1f2937;
- --tw-prose-th-borders: #d1d5db;
- --tw-prose-td-borders: #e5e7eb;
- --tw-prose-invert-body: #d1d5db;
- --tw-prose-invert-headings: #fff;
- --tw-prose-invert-lead: #9ca3af;
- --tw-prose-invert-links: #fff;
- --tw-prose-invert-bold: #fff;
- --tw-prose-invert-counters: #9ca3af;
- --tw-prose-invert-bullets: #4b5563;
- --tw-prose-invert-hr: #374151;
- --tw-prose-invert-quotes: #f3f4f6;
- --tw-prose-invert-quote-borders: #374151;
- --tw-prose-invert-captions: #9ca3af;
- --tw-prose-invert-kbd: #fff;
- --tw-prose-invert-kbd-shadows: 255 255 255;
- --tw-prose-invert-code: #fff;
- --tw-prose-invert-pre-code: #d1d5db;
- --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
- --tw-prose-invert-th-borders: #4b5563;
- --tw-prose-invert-td-borders: #374151;
- font-size: 1rem;
- line-height: 1.75;
-}
-
-.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 2em;
- margin-bottom: 2em;
-}
-
-.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-left: 0.375em;
-}
-
-.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-left: 0.375em;
-}
-
-.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0.75em;
- margin-bottom: 0.75em;
-}
-
-.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 1.25em;
-}
-
-.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-bottom: 1.25em;
-}
-
-.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 1.25em;
-}
-
-.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-bottom: 1.25em;
-}
-
-.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0.75em;
- margin-bottom: 0.75em;
-}
-
-.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 1.25em;
- margin-bottom: 1.25em;
-}
-
-.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0.5em;
- padding-left: 1.625em;
-}
-
-.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-left: 0;
-}
-
-.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-right: 0;
-}
-
-.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-top: 0.5714286em;
- padding-right: 0.5714286em;
- padding-bottom: 0.5714286em;
- padding-left: 0.5714286em;
-}
-
-.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-left: 0;
-}
-
-.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- padding-right: 0;
-}
-
-.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 2em;
- margin-bottom: 2em;
-}
-
-.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-top: 0;
-}
-
-.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
- margin-bottom: 0;
-}
-
-.m-4 {
- margin: 1rem;
-}
-
.m-2 {
margin: 0.5rem;
}
@@ -1220,16 +726,9 @@ select {
margin-right: auto;
}
-.mr-2 {
- margin-right: 0.5rem;
-}
-
-.mr-6 {
- margin-right: 1.5rem;
-}
-
-.mt-4 {
+.my-4 {
margin-top: 1rem;
+ margin-bottom: 1rem;
}
.mb-2 {
@@ -1248,6 +747,14 @@ select {
margin-left: 1.5rem;
}
+.mr-6 {
+ margin-right: 1.5rem;
+}
+
+.mt-4 {
+ margin-top: 1rem;
+}
+
.block {
display: block;
}
@@ -1256,44 +763,36 @@ select {
display: flex;
}
-.hidden {
- display: none;
-}
-
-.h-3 {
- height: 0.75rem;
+.h-16 {
+ height: 4rem;
}
-.h-8 {
- height: 2rem;
+.w-8 {
+ width: 2rem;
}
-.h-16 {
- height: 4rem;
+.w-full {
+ width: 100%;
}
.w-16 {
width: 4rem;
}
-.w-3 {
- width: 0.75rem;
-}
-
-.w-full {
- width: 100%;
+.min-w-0 {
+ min-width: 0px;
}
-.w-8 {
- width: 2rem;
+.max-w-xl {
+ max-width: 36rem;
}
.flex-shrink-0 {
flex-shrink: 0;
}
-.flex-grow {
- flex-grow: 1;
+.shrink-0 {
+ flex-shrink: 0;
}
.list-disc {
@@ -1320,18 +819,28 @@ select {
justify-content: center;
}
-.justify-between {
- justify-content: space-between;
+.space-x-4 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-x-reverse: 0;
+ margin-right: calc(1rem * var(--tw-space-x-reverse));
+ margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
+}
+
+.self-center {
+ align-self: center;
}
-.rounded {
- border-radius: 0.25rem;
+.overflow-hidden {
+ overflow: hidden;
}
.rounded-lg {
border-radius: 0.5rem;
}
+.rounded-md {
+ border-radius: 0.375rem;
+}
+
.border {
border-width: 1px;
}
@@ -1340,9 +849,13 @@ select {
border-bottom-width: 2px;
}
-.border-fg-1 {
+.border-solid {
+ border-style: solid;
+}
+
+.border-fg-2 {
--tw-border-opacity: 1;
- border-color: rgb(60 56 54 / var(--tw-border-opacity));
+ border-color: rgb(80 73 69 / var(--tw-border-opacity));
}
.border-fg-3 {
@@ -1350,77 +863,66 @@ select {
border-color: rgb(102 92 84 / var(--tw-border-opacity));
}
-.border-fg-2 {
+.border-gray-200 {
--tw-border-opacity: 1;
- border-color: rgb(80 73 69 / var(--tw-border-opacity));
+ border-color: rgb(229 231 235 / var(--tw-border-opacity));
}
-.bg-bg-hard {
- --tw-bg-opacity: 1;
- background-color: rgb(249 245 215 / var(--tw-bg-opacity));
+.border-gray-light {
+ --tw-border-opacity: 1;
+ border-color: rgb(146 131 116 / var(--tw-border-opacity));
}
-.bg-bg-soft {
+.bg-bg-1 {
--tw-bg-opacity: 1;
- background-color: rgb(242 229 188 / var(--tw-bg-opacity));
+ background-color: rgb(235 219 178 / var(--tw-bg-opacity));
}
-.bg-bg-3 {
+.bg-bg-hard {
--tw-bg-opacity: 1;
- background-color: rgb(189 174 147 / var(--tw-bg-opacity));
+ background-color: rgb(249 245 215 / var(--tw-bg-opacity));
}
-.bg-bg-2 {
+.bg-bg-soft {
--tw-bg-opacity: 1;
- background-color: rgb(213 196 161 / var(--tw-bg-opacity));
+ background-color: rgb(242 229 188 / var(--tw-bg-opacity));
}
-.bg-bg-1 {
+.bg-gray-100 {
--tw-bg-opacity: 1;
- background-color: rgb(235 219 178 / var(--tw-bg-opacity));
+ background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
-.bg-fuchsia-500 {
+.bg-gray-200 {
--tw-bg-opacity: 1;
- background-color: rgb(217 70 239 / var(--tw-bg-opacity));
+ background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
-.fill-current {
- fill: currentColor;
-}
-
-.fill-bg-soft {
- fill: #f2e5bc;
+.bg-bg-2 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(213 196 161 / var(--tw-bg-opacity));
}
.fill-fg-0 {
fill: #282828;
}
-.stroke-fg-0 {
- stroke: #282828;
-}
-
.p-2 {
padding: 0.5rem;
}
-.p-6 {
- padding: 1.5rem;
-}
-
.p-4 {
padding: 1rem;
}
-.p-1 {
- padding: 0.25rem;
-}
-
.p-5 {
padding: 1.25rem;
}
+.p-3 {
+ padding: 0.75rem;
+}
+
.px-4 {
padding-left: 1rem;
padding-right: 1rem;
@@ -1431,33 +933,33 @@ select {
padding-bottom: 0.5rem;
}
-.px-3 {
- padding-left: 0.75rem;
- padding-right: 0.75rem;
-}
-
.py-4 {
padding-top: 1rem;
padding-bottom: 1rem;
}
-.py-10 {
- padding-top: 2.5rem;
- padding-bottom: 2.5rem;
+.pb-1 {
+ padding-bottom: 0.25rem;
}
.pl-2 {
padding-left: 0.5rem;
}
-.pb-1 {
- padding-bottom: 0.25rem;
-}
-
.text-center {
text-align: center;
}
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+
+.text-3xl {
+ font-size: 1.875rem;
+ line-height: 2.25rem;
+}
+
.text-lg {
font-size: 1.125rem;
line-height: 1.75rem;
@@ -1473,32 +975,13 @@ select {
line-height: 1.75rem;
}
-.text-3xl {
- font-size: 1.875rem;
- line-height: 2.25rem;
-}
-
-.text-2xl {
- font-size: 1.5rem;
- line-height: 2rem;
-}
-
-.font-semibold {
- font-weight: 600;
-}
-
.tracking-tight {
letter-spacing: -0.025em;
}
-.text-fg-0 {
- --tw-text-opacity: 1;
- color: rgb(40 40 40 / var(--tw-text-opacity));
-}
-
-.text-fg-1 {
+.text-blue-dark {
--tw-text-opacity: 1;
- color: rgb(60 56 54 / var(--tw-text-opacity));
+ color: rgb(7 102 120 / var(--tw-text-opacity));
}
.text-blue-light {
@@ -1506,84 +989,68 @@ select {
color: rgb(69 133 136 / var(--tw-text-opacity));
}
-.text-blue-dark {
+.text-fg-0 {
--tw-text-opacity: 1;
- color: rgb(7 102 120 / var(--tw-text-opacity));
+ color: rgb(40 40 40 / var(--tw-text-opacity));
}
-.text-neutral-950 {
+.text-fg-1 {
--tw-text-opacity: 1;
- color: rgb(10 10 10 / var(--tw-text-opacity));
-}
-
-.no-underline {
- text-decoration-line: none;
+ color: rgb(60 56 54 / var(--tw-text-opacity));
}
.hover\:border-b-2:hover {
border-bottom-width: 2px;
}
-.hover\:border-fg-2:hover {
- --tw-border-opacity: 1;
- border-color: rgb(80 73 69 / var(--tw-border-opacity));
-}
-
-.hover\:text-fg-2:hover {
- --tw-text-opacity: 1;
- color: rgb(80 73 69 / var(--tw-text-opacity));
-}
-
-.hover\:underline:hover {
- text-decoration-line: underline;
-}
-
@media (prefers-color-scheme: dark) {
- .dark\:border-fgDark-1 {
+ .dark\:border-fgDark-3 {
--tw-border-opacity: 1;
- border-color: rgb(235 219 178 / var(--tw-border-opacity));
+ border-color: rgb(189 174 147 / var(--tw-border-opacity));
}
- .dark\:border-fgDark-3 {
+ .dark\:border-gray-700 {
--tw-border-opacity: 1;
- border-color: rgb(189 174 147 / var(--tw-border-opacity));
+ border-color: rgb(55 65 81 / var(--tw-border-opacity));
}
- .dark\:bg-bgDark-hard {
- --tw-bg-opacity: 1;
- background-color: rgb(29 32 33 / var(--tw-bg-opacity));
+ .dark\:border-grayDark-dark {
+ --tw-border-opacity: 1;
+ border-color: rgb(146 131 116 / var(--tw-border-opacity));
}
- .dark\:bg-bgDark-soft {
+ .dark\:bg-bgDark-1 {
--tw-bg-opacity: 1;
- background-color: rgb(50 48 47 / var(--tw-bg-opacity));
+ background-color: rgb(60 56 54 / var(--tw-bg-opacity));
}
- .dark\:bg-bgDark-3 {
+ .dark\:bg-bgDark-hard {
--tw-bg-opacity: 1;
- background-color: rgb(102 92 84 / var(--tw-bg-opacity));
+ background-color: rgb(29 32 33 / var(--tw-bg-opacity));
}
- .dark\:bg-bgDark-2 {
+ .dark\:bg-bgDark-soft {
--tw-bg-opacity: 1;
- background-color: rgb(80 73 69 / var(--tw-bg-opacity));
+ background-color: rgb(50 48 47 / var(--tw-bg-opacity));
}
- .dark\:bg-bgDark-1 {
+ .dark\:bg-gray-700 {
--tw-bg-opacity: 1;
- background-color: rgb(60 56 54 / var(--tw-bg-opacity));
+ background-color: rgb(55 65 81 / var(--tw-bg-opacity));
}
- .dark\:fill-bgDark-soft {
- fill: #32302f;
+ .dark\:bg-gray-800 {
+ --tw-bg-opacity: 1;
+ background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}
.dark\:fill-fgDark-0 {
fill: #fbf1c7;
}
- .dark\:stroke-fgDark-0 {
- stroke: #fbf1c7;
+ .dark\:text-blueDark-dark {
+ --tw-text-opacity: 1;
+ color: rgb(69 133 136 / var(--tw-text-opacity));
}
.dark\:text-fgDark-0 {
@@ -1595,56 +1062,9 @@ select {
--tw-text-opacity: 1;
color: rgb(235 219 178 / var(--tw-text-opacity));
}
-
- .dark\:text-blueDark-dark {
- --tw-text-opacity: 1;
- color: rgb(69 133 136 / var(--tw-text-opacity));
- }
-
- .dark\:hover\:border-fgDark-2:hover {
- --tw-border-opacity: 1;
- border-color: rgb(213 196 161 / var(--tw-border-opacity));
- }
-
- .dark\:hover\:text-fgDark-2:hover {
- --tw-text-opacity: 1;
- color: rgb(213 196 161 / var(--tw-text-opacity));
- }
}
@media (min-width: 768px) {
- .md\:mt-0 {
- margin-top: 0px;
- }
-
- .md\:block {
- display: block;
- }
-
- .md\:inline-block {
- display: inline-block;
- }
-
- .md\:flex {
- display: flex;
- }
-
- .md\:hidden {
- display: none;
- }
-
- .md\:w-auto {
- width: auto;
- }
-
- .md\:flex-grow {
- flex-grow: 1;
- }
-
- .md\:items-center {
- align-items: center;
- }
-
.md\:py-0 {
padding-top: 0px;
padding-bottom: 0px;
@@ -1652,6 +1072,14 @@ select {
}
@media (min-width: 1024px) {
+ .lg\:max-w-3xl {
+ max-width: 48rem;
+ }
+
+ .lg\:max-w-5xl {
+ max-width: 64rem;
+ }
+
.lg\:justify-between {
justify-content: space-between;
}
diff --git a/tmpl/base.html b/tmpl/base.html
index 0f5a840..02e7eaf 100644
--- a/tmpl/base.html
+++ b/tmpl/base.html
@@ -78,7 +78,7 @@ la budza pu cusku lu
<title>{{block "title" .}}{{end}}</title>
</head>
-<body class="px-4 py-2 mx-auto bg-bg-hard dark:bg-bgDark-hard text-fg-0 dark:text-fgDark-0">
+<body class="px-4 py-2 mx-auto bg-bg-hard dark:bg-bgDark-hard text-fg-0 dark:text-fgDark-0 lg:max-w-5xl max-w-xl">
<header>
<nav
class="flex flex-wrap items-center w-full py-4 md:py-0 px-4 text-lg text-fg-1 dark:text-fgDark-1 bg-bg-soft dark:bg-bgDark-soft">
@@ -92,37 +92,38 @@ la budza pu cusku lu
id="logo"
sodipodi:nodetypes="csssssccsssssccsscccssssscssscscssscsssssssscsssccsssssssccssccscsccscsssscccsccscccssscsscccsssssssssssscsscsccssscsssssscccsssssscsssssccsccsssscsssssscsscssssscssssscscsssssccsccsssccssssscsscssscss" />
</svg>
- <span class="pl-2 text-xl tracking-tight hover:border-b-2 border-fg-2">Xe</span>
+ <span
+ class="pl-2 text-xl tracking-tight hover:border-b-2 border-fg-2 text-fg-1 dark:text-fgDark-1">Xe</span>
</a>
</div>
- <div class="flex items-center flex-shrink-0 mr-6 hover:border-b-2 border-fg-2">
- <a href="/blog">
+ <div class=" flex items-center flex-shrink-0 mr-6 hover:border-b-2 border-fg-2">
+ <a href="/blog" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight">Blog</span>
</a>
</div>
<div class="flex items-center flex-shrink-0 mr-6 hover:border-b-2 border-fg-2">
- <a href="/contact">
+ <a href="/contact" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight">Contact</span>
</a>
</div>
<div class="flex items-center flex-shrink-0 mr-6 hover:border-b-2 border-fg-2">
- <a href="/resume">
+ <a href="/resume" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight">Resume</span>
</a>
</div>
<div class="flex items-center flex-shrink-0 mr-6 hover:border-b-2 border-fg-2">
- <a href="/talks">
+ <a href="/talks" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight hover:border-b-2 border-fg-2">Talks</span>
</a>
</div>
<div class="flex items-center flex-shrink-0 mr-6">
- <a href="/vods">
+ <a href="/vods" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight hover:border-b-2 border-fg-2">VODs</span>
</a>
</div>
<div class="mx-auto"></div>
<div class="flex items-center flex-shrink-0 mr-6">
- <a href="/signalboost">
+ <a href="/signalboost" class="text-fg-1 dark:text-fgDark-1">
<span class="text-xl tracking-tight ml-6 hover:border-b-2 border-fg-2">Signalboost</span>
</a>
</div>
diff --git a/tmpl/blogindex.html b/tmpl/blogindex.html
new file mode 100644
index 0000000..f452a6b
--- /dev/null
+++ b/tmpl/blogindex.html
@@ -0,0 +1,18 @@
+{{template "base.html" .}}
+
+{{define "title"}}Blog{{end}}
+
+{{define "content"}}
+
+<h1 class="text-3xl mb-4">Articles</h1>
+<p class="mb-4">If you have a compatible reader, be sure to check out my <a href="/blog.rss">RSS feed</a> for automatic
+ updates. Also check out the <a href="/blog.json">JSONFeed</a>.</p>
+
+<p class="mb-4">For a breakdown by post series, see <a href="/blog/series">here</a>.</p>
+<ul class="list-disc ml-4 mb-4">