diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-01-28 22:15:35 +0100 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-01-28 22:15:35 +0100 |
| commit | 806b0c4c393cc535996a73fa7304d16b08410cd8 (patch) | |
| tree | 1eea61c3ecf547580087ece1900b0653948a106c /assets | |
| parent | a6f50848c05a80e81518fddfd52f72545d8e8c9a (diff) | |
Simplified style (no tailwind)
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/css/main.css | 634 | ||||
| -rw-r--r-- | assets/css/tailwind.css | 268 |
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; - } -} |
