From 001e5887bc7b8831dc1da4dbe42ee5cccf0225de Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Tue, 21 Apr 2026 20:46:33 +0300 Subject: 21.04.2026 --- themes/neonxp/assets/css/atom.css | 234 +++++++++++++++++++++++++++++++++++++ themes/neonxp/assets/css/main.css | 185 +++++++++++++++++++++++++++++ themes/neonxp/assets/css/paper.css | 184 +++++++++++++++++++++++++++++ 3 files changed, 603 insertions(+) create mode 100644 themes/neonxp/assets/css/atom.css create mode 100644 themes/neonxp/assets/css/main.css create mode 100644 themes/neonxp/assets/css/paper.css (limited to 'themes/neonxp/assets/css') diff --git a/themes/neonxp/assets/css/atom.css b/themes/neonxp/assets/css/atom.css new file mode 100644 index 0000000..53b8503 --- /dev/null +++ b/themes/neonxp/assets/css/atom.css @@ -0,0 +1,234 @@ +/* Базовое отображение XML-элементов как блоков */ +feed, +entry, +title, +link, +updated, +published, +summary, +content, +author, +name, +email, +uri, +id { + display: block; +} + +/* Скрываем служебные элементы */ +feed>id, +feed>link[rel="self"], +entry>id, +entry>author, +entry>link:not([rel="alternate"]) { + display: none; +} + +/* Основной контейнер */ +feed { + max-width: 800px; + margin: 0 auto; + padding: 2rem 1rem; + font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; + background-color: var(--bg, #101010); + color: var(--text, #a0a0a0); + line-height: 1.5; +} + +/* Заголовок блога */ +feed>title { + font-size: 2.5rem; + font-weight: bold; + margin-bottom: 0.5rem; + color: var(--link-color, #a73afd); + border-bottom: 2px solid var(--border, #909090); + padding-bottom: 0.5rem; +} + +/* Информация об авторе (только в корне) */ +feed>author { + display: flex; + gap: 1rem; + margin-bottom: 2rem; + color: var(--text-secondary, #909090); + font-size: 0.95rem; +} + +feed>author>name { + font-weight: 600; +} + +feed>author>email, +feed>author>uri { + display: inline-block; +} + +feed>author>uri { + word-break: break-all; +} + +/* Дата обновления ленты */ +feed>updated { + margin-bottom: 2rem; + font-style: italic; + color: var(--text-secondary, #909090); +} + +feed>updated::before { + content: "Обновлено: "; + font-style: normal; +} + +/* Карточка записи */ +entry { + margin-bottom: 2.5rem; + padding: 1.5rem; + background-color: var(--surface, #010101); + border-radius: 8px; + box-shadow: var(--shadow, 0 2px 8px rgba(0, 0, 0, 0.2)); + border: 1px solid var(--border, #909090); +} + +/* Заголовок записи */ +entry>title { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 0.75rem; + color: var(--link-color, #a73afd); + line-height: 1.3; +} + +/* Ссылка на полный пост */ +entry>link[rel="alternate"] { + display: inline-block; + margin-bottom: 1rem; + font-size: 0.9rem; +} + +entry>link[rel="alternate"]::before { + content: "🔗 Читать полностью: "; + color: var(--text-secondary, #909090); +} + +entry>link[rel="alternate"]::after { + content: attr(href); + display: inline-block; + margin-left: 0.25rem; + color: var(--link-color, #a73afd); + text-decoration: underline; + text-underline-offset: 2px; + word-break: break-all; +} + +/* Даты */ +entry>published, +entry>updated { + display: inline-block; + margin-right: 1.5rem; + margin-bottom: 1rem; + font-size: 0.9rem; + color: var(--text-secondary, #909090); +} + +entry>published::before { + content: "📅 Опубликовано: "; +} + +entry>updated::before { + content: "🔄 Обновлено: "; +} + +/* Краткое содержание */ +entry>summary { + margin: 1rem 0; + padding: 1rem; + background-color: rgba(255, 255, 255, 0.03); + border-left: 3px solid var(--link-color, #a73afd); + border-radius: 0 4px 4px 0; + font-size: 1rem; + white-space: pre-wrap; + word-break: break-word; +} + +entry>summary::before { + content: "📋 Аннотация"; + display: block; + font-weight: bold; + margin-bottom: 0.75rem; + color: var(--text-secondary, #909090); + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.8rem; +} + +/* Полное содержание */ +entry>content { + margin-top: 1.5rem; + padding-top: 1rem; + border-top: 1px dashed var(--border, #909090); + white-space: pre-wrap; + word-break: break-word; +} + +entry>content::before { + content: "📄 Полный текст"; + display: block; + font-weight: bold; + margin-bottom: 1rem; + color: var(--text-secondary, #909090); + text-transform: uppercase; + letter-spacing: 1px; + font-size: 0.8rem; +} + +/* Адаптивность */ +@media (max-width: 600px) { + feed { + padding: 1rem 0.75rem; + } + + feed>title { + font-size: 2rem; + } + + entry { + padding: 1rem; + } + + entry>title { + font-size: 1.5rem; + } +} + +/* Цветовые переменные */ +:root { + --bg: #101010; + --surface: #010101; + --border: #909090; + --text: #a0a0a0; + --text-secondary: #909090; + --shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + --link-color: #a73afd; +} + +/* Печатная версия */ +@media print { + feed { + background: white; + color: black; + } + + entry { + box-shadow: none; + border: 1px solid #ccc; + background: white; + } + + entry>title { + color: black; + } + + entry>link[rel="alternate"]::after { + color: black; + } +} \ No newline at end of file diff --git a/themes/neonxp/assets/css/main.css b/themes/neonxp/assets/css/main.css new file mode 100644 index 0000000..6c0d4e1 --- /dev/null +++ b/themes/neonxp/assets/css/main.css @@ -0,0 +1,185 @@ +:root { + --border-radius: 4px; + --shadow: 0 2px 8px rgba(0, 0, 0, 0.05); +} + +@media (prefers-color-scheme: dark) { + :root { + --shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + } +} + +h1 { + line-height: 2.5rem; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + text-decoration: none; +} + +nav { + margin-top: 1rem; +} + +nav ul { + padding: 0; + margin: 0; + display: flex; + justify-content: space-between; +} + +nav ul li { + list-style: none; + display: inline-block; + border: 0.1px solid var(--link-color); + border-radius: var(--border-radius); +} + +nav ul li a { + padding: 0.5rem 1rem; + text-decoration: none; + display: inline-block; + width: auto; + line-height: 1.5rem; +} + +nav ul li a:hover { + background-color: color-mix(in srgb, var(--link-color) 10%, transparent); +} + +nav ul li a.active { + background-color: color-mix(in srgb, var(--link-color) 10%, transparent); +} + +@media (max-width: 900px) { + nav ul { + display: block; + } + + nav ul li { + display: block; + border-radius: 0; + } + + nav ul:first-child { + border-radius: var(--border-radius) + } + + nav ul li a { + display: block; + } +} + +ul.taxonomy { + display: block; + padding: 0; + margin: 0.5rem 0; +} + +ul.taxonomy li { + list-style: none; + display: inline; +} + +ul.taxonomy li::after { + content: " | "; +} + +ul.taxonomy li:last-child::after { + content: ""; +} + +ul.terms { + display: block; + padding: 0; + margin: 0.5rem 0; +} + +ul.terms li { + list-style: none; + display: inline; +} + +ul.terms li::after { + content: " | "; +} + +ul.terms li:last-child::after { + content: ""; +} + +ul.pagination { + display: block; + padding: 0; + margin: 0.5rem 0; +} + +ul.pagination li { + display: inline; + list-style: none; +} + +ul.pagination li.active a { + background-color: color-mix(in srgb, var(--link-color) 10%, transparent); +} + +ul.pagination li a { + padding: 0.5rem 1rem; + border: 0.1px solid var(--link-color); + border-radius: var(--border-radius); + text-decoration: none; + line-height: 3rem; +} + +ul.pagination li a:hover { + background-color: color-mix(in srgb, var(--link-color) 10%, transparent); +} + +ul.pagination li:first-child a { + margin-left: 0; +} + +pre { + border-radius: var(--border-radius); + border: 0.1px solid var(--border); + padding: 0.5rem; +} + +time { + width: 100%; + text-align: right; + color: #a0a0a0; + font-size: 10pt; + border-top: 1px dotted var(--border); + margin-top: 5px; + display: block; +} + +img { + border-radius: var(--border-radius); +} + +.menu-icon { + height: 24px; + width: 24px; + border-radius: 0; + margin-bottom: -0.5rem; +} + +a.btn-primary { + display: inline-block; + padding: 0.5rem 1rem; + margin: 1rem 0; + border: 0.1px solid var(--link-color); + border-radius: var(--border-radius); + text-decoration: none; +} + +a.btn-primary:hover { + background-color: color-mix(in srgb, var(--link-color) 10%, transparent); +} \ No newline at end of file diff --git a/themes/neonxp/assets/css/paper.css b/themes/neonxp/assets/css/paper.css new file mode 100644 index 0000000..07089d0 --- /dev/null +++ b/themes/neonxp/assets/css/paper.css @@ -0,0 +1,184 @@ +html, +body { + padding: 0px; + margin: 0px; + border: none; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + /* line-height: 1; */ +} + +:root { + --bg: #ffffff; + --surface: #f8f9fa; + --border: #e3e3e3; + --text: #2e2e2e; + --text-secondary: #6c757d; + --link-color: #a73afd; +} + +@media (prefers-color-scheme: dark) { + :root { + --bg: #101010; + --surface: #010101; + --border: #909090; + --text: #a0a0a0; + --text-secondary: #909090; + --shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + --link-color: #a73afd; + } +} + +@media print { + + *, + *:before, + *:after, + *:first-letter, + p:first-line, + div:first-line, + blockquote:first-line, + li:first-line { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + + :root { + --main-color: #000; + --background-color: #fff; + --main-background-color: #fff; + } + + main { + font-size: 12pt !important; + line-height: 1.4 !important; + --background-color: #fff !important; + } + + header { + display: none; + } + + footer { + display: none; + } + + article { + page-break-after: always; + border: 0 !important; + padding: 0 !important; + } + + a[href] { + color: #000; + } +} + +html { + background-color: var(--surface); + display: flex; + justify-content: center; + flex-direction: row; +} + +body { + color: var(--text); + font-family: Arial, Helvetica, sans-serif; + line-height: 1.5; + width: 100%; + max-width: 1200px; +} + +a { + color: var(--link-color); +} + +header, +footer { + padding: 0 2rem; +} + +main { + padding: 0 2rem; +} + +article { + background-color: var(--bg); + padding: 1.5em 2em; + margin: 1em 0; + border: 0.1px solid var(--border); + word-break: break-word; +} + +article p { + orphans: 3; + widows: 4; + text-align: justify; +} + +figure { + max-width: 800px; +} + +img { + max-width: 100%; +} + +@media (max-width: 900px) { + main { + font-size: 15px; + line-height: 1.5; + padding: 0 0.5em; + } + + header, + footer { + padding: 0 0.5rem; + } + + article { + padding: 0.5em; + } + + .no-mobile { + display: none; + } +} + +@media (max-width: 480px) { + main { + font-size: 14px; + line-height: 1.4; + padding: 0 0.1em; + } + + header, + footer { + padding: 0 0.1rem; + } + + article { + padding: 0.5em 0.5em; + } +} + +pre, +code { + max-width: 100%; + overflow-x: scroll; +} \ No newline at end of file -- cgit v1.2.3