aboutsummaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-01-28 22:15:35 +0100
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-01-28 22:15:35 +0100
commit806b0c4c393cc535996a73fa7304d16b08410cd8 (patch)
tree1eea61c3ecf547580087ece1900b0653948a106c /assets
parenta6f50848c05a80e81518fddfd52f72545d8e8c9a (diff)
Simplified style (no tailwind)
Diffstat (limited to 'assets')
-rw-r--r--assets/css/main.css634
-rw-r--r--assets/css/tailwind.css268
2 files changed, 634 insertions, 268 deletions
diff --git a/assets/css/main.css b/assets/css/main.css
new file mode 100644
index 0000000..ef81ba5
--- /dev/null
+++ b/assets/css/main.css
@@ -0,0 +1,634 @@
+/* ========================================
+ CSS Custom Properties (Theme Colors)
+ ======================================== */
+
+:root {
+ /* Background */
+ --color-bg: #ffffff;
+ --color-bg-muted: #f3f4f6;
+ --color-bg-hover: #f9fafb;
+
+ /* Text */
+ --color-text: #374151;
+ --color-heading: #111827;
+ --color-muted: #6b7280;
+ --color-light: #9ca3af;
+
+ /* Accent (emerald) */
+ --color-accent: #047857;
+ --color-accent-hover: #059669;
+
+ /* Borders */
+ --color-border: #e5e7eb;
+ --color-border-strong: #d1d5db;
+
+ /* Alerts */
+ --color-warning-bg: #fef3c7;
+ --color-warning-border: #f59e0b;
+ --color-warning-text: #78350f;
+
+ --color-info-bg: #dbeafe;
+ --color-info-border: #3b82f6;
+ --color-info-text: #1e3a8a;
+
+ --color-success-bg: #d1fae5;
+ --color-success-border: #10b981;
+ --color-success-text: #065f46;
+
+ --color-error-bg: #fee2e2;
+ --color-error-border: #ef4444;
+ --color-error-text: #991b1b;
+}
+
+.dark {
+ --color-bg: #111827;
+ --color-bg-muted: #1f2937;
+ --color-bg-hover: #1f2937;
+
+ --color-text: #d1d5db;
+ --color-heading: #d1d5db;
+ --color-muted: #9ca3af;
+ --color-light: #9ca3af;
+
+ --color-accent: #6ee7b7;
+ --color-accent-hover: #a7f3d0;
+
+ --color-border: #374151;
+ --color-border-strong: #374151;
+}
+
+/* ========================================
+ Base Styles
+ ======================================== */
+
+* {
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ scroll-behavior: smooth;
+}
+
+body {
+ background-color: var(--color-bg);
+ color: var(--color-text);
+ font-size: 1.125rem;
+ line-height: 1.75;
+ font-family: 'System UI', -apple-system, BlinkMacSystemFont, 'Avenir Next', Avenir, 'Segoe UI', 'Helvetica Neue', Helvetica, Cantarell, Ubuntu, Roboto, Noto, Arial, sans-serif;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 700;
+ color: var(--color-heading);
+ margin-bottom: 1.25rem;
+ padding-top: 0.5rem;
+}
+
+h1 { font-size: 2.25rem; line-height: 2.5rem; }
+h2 { font-size: 1.875rem; line-height: 2.5rem; }
+h3 { font-size: 1.5rem; }
+h4 { font-size: 1.25rem; }
+h5 { font-size: 1.125rem; }
+h6 { font-size: 1rem; }
+
+hr {
+ border-color: var(--color-border);
+}
+
+p, hr, pre, dl {
+ margin-bottom: 1.25rem;
+}
+
+article > h1 {
+ margin-bottom: 0.25rem;
+}
+
+code {
+ background-color: var(--color-bg-muted);
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ border: 1px solid var(--color-border);
+ padding: 0.25rem 0.5rem;
+}
+
+pre {
+ border-radius: 0.5rem;
+ border: 1px solid var(--color-border);
+ padding: 1.25rem;
+ overflow: auto;
+ font-size: 1rem;
+}
+
+pre code {
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+}
+
+figure {
+ margin-bottom: 1.25rem;
+}
+
+figcaption {
+ font-size: 1rem;
+ color: var(--color-muted);
+ margin-top: 0.5rem;
+}
+
+blockquote {
+ font-size: 1.25rem;
+ color: var(--color-muted);
+ font-style: italic;
+ border-left: 4px solid var(--color-border-strong);
+ padding-left: 1rem;
+ margin-bottom: 1.25rem;
+}
+
+ul, ol {
+ margin-bottom: 1.25rem;
+ margin-left: 1.5rem;
+}
+
+ol { list-style-type: decimal; }
+ul { list-style-type: disc; }
+
+nav ul, footer ul {
+ list-style: none;
+ margin-left: 0;
+}
+
+header h1 {
+ margin-bottom: 0;
+}
+
+/* Tables */
+table {
+ width: 100%;
+ border: 1px solid var(--color-border);
+ border-radius: 0.375rem;
+ border-collapse: separate;
+ border-spacing: 0;
+ margin-bottom: 1.25rem;
+ display: block;
+ overflow-x: auto;
+}
+
+thead th {
+ border-bottom: 2px solid var(--color-border);
+ border-right: 1px solid var(--color-border);
+ padding: 0.5rem 0.75rem;
+ white-space: nowrap;
+}
+
+thead th:last-child { border-right: 0; }
+
+tbody td {
+ padding: 0.5rem 0.75rem;
+ border-bottom: 1px solid var(--color-border);
+ font-size: 1rem;
+ border-right: 1px solid var(--color-border);
+ white-space: nowrap;
+}
+
+tbody td:last-child { border-right: 0; }
+tbody tr:last-child td { border-bottom: 0; }
+
+@media (min-width: 768px) {
+ table { display: table; overflow-x: visible; }
+ thead th, tbody td { white-space: normal; }
+}
+
+/* Definition lists */
+dt { font-weight: 700; font-style: italic; }
+dd { padding-left: 2.5rem; }
+
+/* Navigation */
+header nav > ul {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ text-transform: uppercase;
+ font-size: 0.75rem;
+ font-weight: 600;
+ gap: 1.75rem;
+}
+
+nav a, footer a {
+ color: var(--color-muted);
+ font-weight: 600;
+}
+
+nav a:hover, footer a:hover {
+ color: var(--color-heading);
+}
+
+nav a.active {
+ color: var(--color-heading);
+}
+
+footer {
+ font-size: 0.75rem;
+}
+
+/* ========================================
+ Component Classes
+ ======================================== */
+
+/* Site title */
+#site-title {
+ text-align: center;
+ font-size: 2.25rem;
+ font-weight: 800;
+ color: var(--color-heading);
+}
+
+/* Header links (title, avatar) should not be underlined */
+header a {
+ text-decoration: none;
+ color: inherit;
+}
+
+@media (min-width: 640px) {
+ #site-title { text-align: left; }
+}
+
+/* Theme toggle button */
+button {
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 0;
+ color: var(--color-text);
+}
+
+/* Avatar */
+.avatar {
+ flex: none;
+ width: 5rem;
+ height: 5rem;
+ border-radius: 9999px;
+ overflow: hidden;
+}
+
+.avatar a {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.avatar img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ border-radius: 9999px;
+}
+
+/* Title variants */
+.title-large {
+ font-size: 2.25rem;
+ line-height: 1.4;
+ font-weight: 700;
+ color: var(--color-heading);
+}
+
+.title-small {
+ font-size: 1.5rem;
+ font-weight: 800;
+ color: var(--color-heading);
+}
+
+/* Content area */
+#content {
+ line-height: 1.625;
+}
+
+#content a {
+ text-decoration: underline;
+ font-weight: 700;
+ color: var(--color-accent);
+}
+
+#content a:hover {
+ color: var(--color-accent-hover);
+}
+
+#content .date {
+ padding: 0.5rem 0;
+ font-size: 0.875rem;
+ font-weight: 600;
+ color: var(--color-light);
+}
+
+#content h1 > a {
+ text-decoration: none;
+ font-size: 1.25rem;
+ font-weight: 700;
+ color: var(--color-heading);
+}
+
+#content h1 > a:hover {
+ text-decoration: underline;
+ color: var(--color-heading);
+}
+
+#content .meta {
+ font-size: 0.875rem;
+ font-weight: 600;
+ color: var(--color-muted);
+ display: flex;
+ gap: 0.75rem;
+ margin-top: 0.5rem;
+}
+
+#content .meta a {
+ text-decoration: none;
+}
+
+#content .description {
+ color: var(--color-text);
+ font-size: 1rem;
+}
+
+#content .read-more {
+ text-decoration: none;
+ display: inline-flex;
+ gap: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 600;
+ align-items: center;
+ color: var(--color-accent);
+}
+
+#content .read-more:hover {
+ color: var(--color-accent-hover);
+}
+
+/* Footnotes */
+#content .footnotes {
+ font-size: 0.875rem;
+}
+
+#content .footnotes p {
+ display: inline-block;
+ margin-bottom: 0;
+}
+
+#content .footnotes ol {
+ display: block;
+}
+
+#content .footnotes li {
+ margin-bottom: 0.75rem;
+}
+
+/* Alert boxes */
+#content .alert-box {
+ padding: 1rem 1rem 0.25rem 1rem;
+ margin-bottom: 1.25rem;
+ border-top: 4px solid;
+}
+
+#content .alert-box .alert-title {
+ color: inherit;
+ font-weight: 600;
+ font-size: 1.125rem;
+ padding: 0;
+ margin-bottom: 0.5rem;
+}
+
+#content .alert-box a {
+ color: inherit;
+}
+
+#content .alert-box a:hover {
+ color: inherit;
+}
+
+#content .alert-box .alert-icon {
+ width: 1.75rem;
+ height: 1.75rem;
+ margin-right: 0.5rem;
+ flex-shrink: 0;
+}
+
+#content .alert-box p {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+#content .alert-box.warning {
+ background-color: var(--color-warning-bg);
+ border-color: var(--color-warning-border);
+ color: var(--color-warning-text);
+}
+
+#content .alert-box.info {
+ background-color: var(--color-info-bg);
+ border-color: var(--color-info-border);
+ color: var(--color-info-text);
+}
+
+#content .alert-box.success {
+ background-color: var(--color-success-bg);
+ border-color: var(--color-success-border);
+ color: var(--color-success-text);
+}
+
+#content .alert-box.error {
+ background-color: var(--color-error-bg);
+ border-color: var(--color-error-border);
+ color: var(--color-error-text);
+}
+
+/* Table of contents */
+#content .table-of-contents {
+ background-color: var(--color-bg-muted);
+ color: var(--color-text);
+ padding: 1rem;
+ border: 1px solid var(--color-border);
+ border-radius: 0.5rem;
+}
+
+#content .table-of-contents #TableOfContents ul {
+ list-style-type: decimal;
+ list-style-position: inside;
+ margin-left: 1rem;
+}
+
+#content .table-of-contents #TableOfContents ul li {
+ margin: 0.5rem 0;
+ font-size: 1rem;
+}
+
+#content .table-of-contents #TableOfContents ul li a {
+ font-weight: 400;
+ text-decoration: none;
+ color: var(--color-text);
+}
+
+#content .table-of-contents #TableOfContents ul li a:hover {
+ text-decoration: underline;
+ color: var(--color-accent-hover);
+}
+
+/* Pagination button */
+#content .pagination-button {
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 0.75rem;
+ border: 1px solid var(--color-border-strong);
+ font-size: 0.875rem;
+ border-radius: 0.375rem;
+ color: var(--color-text);
+ background-color: var(--color-bg);
+}
+
+#content .pagination-button:hover {
+ background-color: var(--color-bg-hover);
+ color: var(--color-heading);
+}
+
+/* Taxonomy list (tags/categories) */
+#content .taxonomy-list {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 0.5rem 0.5rem;
+ list-style: none;
+ margin-left: 0;
+}
+
+#content .taxonomy-list a {
+ font-weight: 400;
+ text-decoration: none;
+ font-size: 1rem;
+ color: var(--color-heading);
+ background-color: var(--color-bg-muted);
+ padding: 0.5rem 0.75rem;
+ border-radius: 0.5rem;
+}
+
+#content .taxonomy-list a:hover {
+ background-color: var(--color-border);
+}
+
+#content .tags-list {
+ gap: 0.5rem;
+}
+
+/* Task lists */
+#content span.task-list + ul {
+ list-style: none;
+}
+
+/* Category link (used in list/categories.html) */
+.category-link {
+ background-color: var(--color-bg-muted);
+ padding: 0.5rem 0.75rem;
+ border-radius: 0.5rem;
+ transition: background-color 0.5s;
+}
+
+.category-link:hover {
+ background-color: var(--color-border);
+}
+
+/* ========================================
+ Layout Utilities
+ ======================================== */
+
+/* Container */
+.container {
+ max-width: 768px;
+ margin-left: auto;
+ margin-right: auto;
+ padding-left: 0.625rem;
+ padding-right: 0.625rem;
+}
+
+/* Flexbox */
+.flex { display: flex; }
+.flex-col { display: flex; flex-direction: column; }
+.flex-row { display: flex; flex-direction: row; }
+.flex-wrap { flex-wrap: wrap; }
+.flex-none { flex: none; }
+.items-center { align-items: center; }
+.justify-center { justify-content: center; }
+.justify-end { justify-content: flex-end; }
+
+/* Grid */
+.grid { display: grid; }
+.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
+
+/* Gap */
+.gap-1 { gap: 0.25rem; }
+.gap-2 { gap: 0.5rem; }
+.gap-3 { gap: 0.75rem; }
+.gap-5 { gap: 1.25rem; }
+.gap-7 { gap: 1.75rem; }
+.gap-10 { gap: 2.5rem; }
+
+/* Padding */
+.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
+.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
+.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
+.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
+.pb-10 { padding-bottom: 2.5rem; }
+.pb-14 { padding-bottom: 3.5rem; }
+.pt-5 { padding-top: 1.25rem; }
+
+/* Margin */
+.mt-2 { margin-top: 0.5rem; }
+.mb-5 { margin-bottom: 1.25rem; }
+
+/* Width/Height */
+.w-4 { width: 1rem; }
+.w-8 { width: 2rem; }
+.w-20 { width: 5rem; }
+.h-4 { height: 1rem; }
+.h-8 { height: 2rem; }
+.h-20 { height: 5rem; }
+
+/* Border radius */
+.rounded-full { border-radius: 9999px; }
+.rounded-lg { border-radius: 0.5rem; }
+.rounded-md { border-radius: 0.375rem; }
+
+/* Overflow */
+.overflow-hidden { overflow: hidden; }
+
+/* Typography */
+.font-bold { font-weight: 700; }
+.font-extrabold { font-weight: 800; }
+.font-semibold { font-weight: 600; }
+
+.text-xs { font-size: 0.75rem; line-height: 1rem; }
+.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
+.text-base { font-size: 1rem; line-height: 1.5rem; }
+.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
+.text-2xl { font-size: 1.5rem; line-height: 2rem; }
+.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
+
+.text-center { text-align: center; }
+
+.leading-snug { line-height: 1.4; }
+
+.stroke-2 { stroke-width: 2; }
+
+/* ========================================
+ Responsive (sm: 640px+)
+ ======================================== */
+
+@media (min-width: 640px) {
+ .sm\:flex-row { flex-direction: row; }
+ .sm\:gap-10 { gap: 2.5rem; }
+ .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
+ .sm\:text-left { text-align: left; }
+}
diff --git a/assets/css/tailwind.css b/assets/css/tailwind.css
deleted file mode 100644
index fe93939..0000000
--- a/assets/css/tailwind.css
+++ /dev/null
@@ -1,268 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
- body {
- @apply bg-white dark:bg-gray-900 text-gray-700 dark:text-gray-300 text-lg;
- }
-
- h1, h2, h3, h4, h5, h6 {
- @apply font-bold text-gray-900 dark:text-gray-300 mb-5 pt-2;
- }
-
- h1 {
- @apply text-4xl leading-10;
- }
-
- h2 {
- @apply text-3xl leading-10;
- }
-
- h3 {
- @apply text-2xl;
- }
-
- h4 {
- @apply text-xl;
- }
-
- h5 {
- @apply text-lg;
- }
-
- h6 {
- @apply text-base;
- }
-
- hr {
- @apply border-gray-200 dark:border-gray-700;
- }
-
- p, hr, pre, dl {
- @apply mb-5;
- }
-
- article > h1 {
- @apply mb-1;
- }
-
- code {
- @apply bg-gray-100 dark:bg-gray-800 rounded-lg text-sm border dark:border-gray-700 px-2 py-1;
- }
-
- pre {
- @apply rounded-lg border dark:border-gray-700 p-5 overflow-auto text-base;
- }
-
- pre code {
- @apply bg-transparent border-0 px-0;
- }
-
- figure {
- @apply mb-5;
- }
-
- figcaption {
- @apply text-base text-gray-500 dark:text-gray-400 mt-2;
- }
-
- blockquote {
- @apply text-xl text-gray-500 dark:text-gray-400 italic border-l-4 border-gray-300 dark:border-gray-700 pl-4 mb-5;
- }
-
- ul, ol {
- @apply mb-5 ml-6;
- }
-
- ol {
- @apply list-decimal;
- }
-
- ul {
- @apply list-disc;
- }
-
- nav ul, footer ul {
- @apply list-none ml-0;
- }
-
- header h1 {
- @apply mb-0;
- }
-
- table {
- @apply w-full border rounded-md border-separate border-spacing-0 mb-5 block overflow-x-auto md:table md:overflow-x-visible;
- }
-
- thead th {
- @apply border-b-2 border-r last:border-r-0 py-2 px-3 whitespace-nowrap md:whitespace-normal;
- }
-
- tbody td {
- @apply py-2 px-3 border-b text-base border-r last:border-r-0 whitespace-nowrap md:whitespace-normal;
- }
-
- tbody tr:last-child td {
- @apply border-b-0;
- }
-
- dt {
- @apply font-bold italic;
- }
-
- dd {
- @apply pl-10;
- }
-
- header nav > ul {
- @apply flex flex-wrap justify-center uppercase text-xs font-semibold gap-7;
- }
-
- nav a, footer a {
- @apply text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 font-semibold;
- }
-
- footer {
- @apply text-xs;
- }
-}
-
-@layer utilities {
- nav a.active {
- @apply text-gray-900 dark:text-gray-100;
- }
-
- /* Content overrides */
- #content {
- @apply leading-normal;
- }
-
- #content a {
- @apply underline font-bold text-emerald-700 hover:text-emerald-600 dark:text-emerald-300 dark:hover:text-emerald-200;
- }
-
- #content .date {
- @apply py-2 text-sm font-semibold text-gray-400;
- }
-
- #content h1 > a {
- @apply no-underline text-xl font-bold hover:underline text-gray-900 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100;
- }
-
- #content .meta {
- @apply text-sm font-semibold text-gray-500 dark:text-gray-400 flex gap-3 mt-2
- }
-
- #content .meta a {
- @apply no-underline;
- }
-
- #content .description {
- @apply text-gray-600 dark:text-gray-300 text-base;
- }
-
- #content .read-more {
- @apply no-underline inline-flex gap-2 text-sm font-semibold items-center text-emerald-700 hover:text-emerald-600 dark:text-emerald-300 dark:hover:text-emerald-200;
- }
-
- #content .footnotes {
- @apply text-sm;
- }
-
- #content .footnotes p {
- @apply inline-block mb-0;
- }
-
- #content .footnotes ol {
- @apply block;
- }
-
- #content .footnotes li {
- @apply mb-3;
- }
-
- #content .alert-box {
- @apply px-4 pt-4 pb-1 mb-5 border-t-4;
- }
-
- #content .alert-box .alert-title {
- @apply text-inherit font-semibold text-lg py-0 px-0 mb-2;
- }
-
- #content .alert-box a {
- @apply text-inherit hover:text-inherit;
- }
-
- #content .alert-box .alert-icon {
- @apply w-7 h-7 mr-2;
- }
-
- #content .alert-box.warning {
- @apply bg-yellow-100 border-yellow-500 text-yellow-900;
- }
-
- #content .alert-box.info {
- @apply bg-blue-100 border-blue-500 text-blue-900;
- }
-
- #content .alert-box.success {
- @apply bg-green-100 border-green-500 text-green-900;
- }
-
- #content .alert-box.error {
- @apply bg-red-100 border-red-500 text-red-900;
- }
-
- #content .table-of-contents {
- @apply bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 p-4 border dark:border-gray-700 rounded-lg;
- }
-
- #content .table-of-contents #TableOfContents ul {
- @apply list-decimal list-inside ml-4;
- }
-
- #content .table-of-contents #TableOfContents ul li {
- @apply my-2 text-base;
- }
-
- #content .table-of-contents #TableOfContents ul li a {
- @apply font-normal no-underline text-gray-700 dark:text-gray-300 hover:underline hover:text-emerald-600 dark:hover:text-emerald-200;
- }
-
- #content .pagination-button {
- @apply no-underline inline-flex items-center gap-2 px-3 py-2 border border-gray-300 dark:border-gray-700 text-sm rounded-md text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-900 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-900 dark:hover:text-gray-100;
- }
-
- #content .taxonomy-list {
- @apply flex flex-row flex-wrap gap-x-2 gap-y-6 list-none ml-0;
- }
-
- #content .taxonomy-list a {
- @apply font-normal no-underline text-base text-gray-800 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 py-2 px-3 rounded-lg;
- }
-
- #content .tags-list {
- @apply gap-y-2;
- }
-
- #content span.task-list + ul {
- @apply list-none;
- }
-
- /* Misc */
- #site-title {
- @apply text-center sm:text-left text-4xl font-extrabold text-gray-800 dark:text-gray-100;
- }
-
-
-
-
- .title-large {
- @apply text-4xl leading-snug font-bold text-gray-900 dark:text-gray-300;
- }
-
- .title-small {
- @apply text-2xl font-extrabold text-gray-900 dark:text-gray-300;
- }
-}