diff --git a/assets/theme/local/.gitignore b/assets/theme/local/.gitignore index 745aff3..040ddec 100644 --- a/assets/theme/local/.gitignore +++ b/assets/theme/local/.gitignore @@ -1,2 +1,2 @@ icons -theme.css +# theme.css and theme-dark.css are tracked in this branch (gitcitadel brand assets) diff --git a/assets/theme/local/theme-dark.css b/assets/theme/local/theme-dark.css new file mode 100644 index 0000000..e7688f1 --- /dev/null +++ b/assets/theme/local/theme-dark.css @@ -0,0 +1,75 @@ +/* + * GitCitadel dark color scheme. + * Loaded only when data-color-scheme="dark" and config theme_stylesheet_dark is set. + * Palette mirrors gitcitadel-online/static/css/main.css exactly: + * bg-primary #2d2d2d, bg-secondary #1e1e1e, accent #7c9eff, hover #9bb3ff, visited #a58fff. + */ +html[data-color-scheme="dark"] { + /* Backgrounds */ + --color-bg: #1e1e1e; /* --bg-secondary from gitcitadel-online */ + --color-bg-light: #2d2d2d; /* --bg-primary */ + --color-bg-primary: #3a3a3a; /* Slightly lifted surface */ + /* Text */ + --color-text: #f0f0f0; /* --text-primary */ + --color-text-mid: #c0c0c0; /* --text-secondary */ + --color-text-contrast: #1e1e1e; + /* Accents — periwinkle/lavender from gitcitadel-online */ + --color-primary: #7c9eff; /* --accent-color / --link-color */ + --color-secondary: #9bb3ff; /* --link-hover */ + --color-primary-strong: #6b8bef; + --color-border: #404040; /* --border-color */ + --color-border-soft: #333333; + --color-text-light: var(--color-text-mid); + --color-footer-bg: #1e1e1e; + --color-footer-text: var(--color-text); + --color-footer-link: var(--color-primary); + --color-highlight-mark-fg: #1e1e1e; + --color-link: #7c9eff; + --color-link-hover: #9bb3ff; + --color-link-visited: #a58fff; /* --link-visited: lavender-purple */ + --color-focus-ring: #9bb3ff; + --color-shadow: color-mix(in srgb, #000 32%, transparent); + --brand-color: #f0f0f0; + --accent-color: var(--color-secondary); + --article-reading-pane-bg: color-mix(in srgb, var(--color-bg) 30%, var(--color-bg-light) 70%); + --article-reading-prose-color: color-mix(in srgb, var(--color-text-mid) 35%, var(--color-text) 65%); +} + +html[data-color-scheme="dark"] a:visited { + color: var(--color-link-visited); +} + +html[data-color-scheme="dark"] .article-main p, +html[data-color-scheme="dark"] .article-main ul, +html[data-color-scheme="dark"] .article-main ol, +html[data-color-scheme="dark"] .article-main li { + font-weight: 450; +} + +html[data-color-scheme="dark"] .home-aside-highlights__item-inner { + border-left: 2px solid var(--color-primary); + padding-left: 0.5rem; + background: color-mix(in srgb, var(--color-bg-light) 55%, transparent); +} + +html[data-color-scheme="dark"] .home-aside-highlights__quote { + color: #d8d4ee; +} + +html[data-color-scheme="dark"] .home-aside-highlights__item-inner:hover, +html[data-color-scheme="dark"] .home-aside-highlights__item-inner:has(.home-aside-highlights__hit:focus-visible) { + background: #3a3a3a; +} + +/* Reply toasts: override base article.css for dark. */ +html[data-color-scheme="dark"] .reply-toast--success { + border-color: #3a8a55; + background: color-mix(in srgb, var(--color-bg) 70%, #2f7a4b 30%); + color: var(--color-text); +} + +html[data-color-scheme="dark"] .reply-toast--error { + border-color: #b03030; + background: color-mix(in srgb, var(--color-bg) 70%, #a12b2b 30%); + color: var(--color-text); +} diff --git a/assets/theme/local/theme.css b/assets/theme/local/theme.css new file mode 100644 index 0000000..95f72ce --- /dev/null +++ b/assets/theme/local/theme.css @@ -0,0 +1,20 @@ +/* + * GitCitadel light theme. + * Accent palette mirrors gitcitadel-online: periwinkle blue (#7c9eff) / lavender-purple (#a58fff). + * Light backgrounds use a cool lavender undertone; brand accent is a deep grape-purple. + */ +[data-theme="gitcitadel"] { + --color-bg: #f5f2fb; /* Very light lavender canvas */ + --color-bg-light: #ede8f5; /* Soft lavender, slightly deeper */ + --color-text: #1a1530; /* Deep purple-navy — strong contrast */ + /* ≥4.5:1 on --color-bg and usable on --color-bg-light for secondary copy */ + --color-text-mid: #3d3458; + --color-text-contrast: #f5f2fb; + + --brand-color: #5c3d8f; /* Deep grape-purple */ + --accent-color: #7c5cbf; /* Medium violet (between brand and link) */ + --color-link: #5535a0; /* Periwinkle-to-violet (WCAG AA on light bg) */ + --color-link-hover: #3d2278; + --color-focus-ring: #7c9eff; /* Matches gitcitadel-online --focus-color */ + --color-shadow: color-mix(in srgb, var(--color-text) 10%, transparent); +} diff --git a/config/unfold.yaml b/config/unfold.yaml index fd00c62..9493329 100644 --- a/config/unfold.yaml +++ b/config/unfold.yaml @@ -6,18 +6,18 @@ parameters: # Per-relay WebSocket I/O (seconds) in NostrClient; also default_socket_timeout during app:prewarm. nostr_relay_request_timeout_sec: 12 - name: 'GitCitadel' - short_name: 'GitCitadel' + name: 'GitCitadel Homepage' + short_name: 'GitCitadel Homepage' description: 'GitCitadel — Nostr-native open-source software development tools and infrastructure.' - og_headline: 'GitCitadel' - og_subheading: 'Nostr-native developer tools' + og_headline: 'GitCitadel Homepage' + og_subheading: 'Nostr-native publishing and development tools' - default_relay: 'wss://thecitadel.nostr1.com' + default_relay: 'wss://theforest.nostr1.com' # Extra wss:// URLs for article sync (articles:get), comment threads (NIP-22 / getArticleDiscussion), # and any request that merges the default set with author-specific relays. default_relay is first; duplicates ignored. article_relays: [ - 'wss://theforest.nostr1.com' + 'wss://thecitadel.nostr1.com' ] # Kind-0 / profile fetches (author metadata, prewarm). Tried first, then default + article_relays (deduped). # Also used as a second pass for kind 30040 (magazine category indices) and category long-form ingest @@ -28,21 +28,19 @@ parameters: # Magazine identity for data-theme=… (CSS hooks). Unrelated to light/dark color scheme. theme: 'gitcitadel' - theme_color: '#1a3a5c' - theme_bg_color: '#f0f4f8' + theme_color: '#5c3d8f' + theme_bg_color: '#f5f2fb' # Per–color-scheme stylesheets: logical asset names under assets/theme/{local,default}/ (see asset_mapper paths). # Set theme_stylesheet_dark to '' to disable the footer scheme toggle and ship only one theme. theme_stylesheet_light: 'theme.css' theme_stylesheet_dark: 'theme-dark.css' - # TODO: replace with the GitCitadel organisation npub - npub: 'npub1TODO' + npub: 'npub1s3ht77dq4zqnya8vjun5jp3p44pr794ru36d0ltxu65chljw8xjqd975wz' # Kind 30040 magazine root #d (NIP-33). Exposed as `d_tag` for backward compatibility. - # TODO: replace with the GitCitadel magazine root d-tag - d_tag_magazine: 'gitcitadel-magazine' + d_tag_magazine: 'gitcitadel-homepage-f57299' d_tag: '%d_tag_magazine%' # Whether to show community articles on the home page - community_articles: true + community_articles: false # Domain for site-assigned NIP-05 for featured (magazine category) authors; must match the host serving /.well-known/nostr.json nip05_domain: 'gitcitadel.imwald.eu' # Base URL for "Open in Jumble" on author profile (trailing slash optional; npub is appended as /{npub}).