diff --git a/apps/marketing/public/admin/admin.css b/apps/marketing/public/admin/admin.css index 2e9dccd..7a33abc 100644 --- a/apps/marketing/public/admin/admin.css +++ b/apps/marketing/public/admin/admin.css @@ -101,27 +101,65 @@ a { box-shadow: none !important; } -/* Logo — no floating gray tile; taller mark on login for subtitle */ +/* Logo — no floating gray tile; circle mark sizes */ [class*='AppHeader'] img, [class*='AppHeader'] [class*='logo'] { background: transparent !important; - max-height: 2.5rem !important; + max-height: 2.25rem !important; width: auto !important; } +/* Login: center brand mark + stack above the GitHub CTA */ +[class*='AuthenticationPage'] { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + justify-content: center !important; + text-align: center !important; +} + [class*='AuthenticationPage'] [class*='CustomIconWrapper'] { - width: min(18rem, 90vw) !important; - margin-bottom: 0.5rem !important; + display: flex !important; + flex-direction: column !important; + justify-content: center !important; + align-items: center !important; + width: min(7.5rem, 42vw) !important; + max-width: min(7.5rem, 42vw) !important; + margin: 0 auto 1.5rem !important; +} + +[class*='AuthenticationPage'] [class*='CustomIconWrapper']::after { + content: 'Content admin'; + display: block; + margin-top: 0.75rem; + font-family: var(--font-families-body), ui-sans-serif, system-ui, sans-serif; + font-size: 0.875rem; + font-weight: 500; + letter-spacing: 0.02em; + color: var(--pk-muted); } [class*='AuthenticationPage'] img { background: transparent !important; + display: block !important; + margin: 0 auto !important; max-height: none !important; max-width: 100% !important; width: 100% !important; height: auto !important; } +[class*='AuthenticationPage'] [class*='AuthForm'], +[class*='AuthenticationPage'] [class*='Card'] { + display: flex !important; + flex-direction: column !important; + align-items: center !important; + width: 100% !important; + max-width: 22rem !important; + margin-left: auto !important; + margin-right: auto !important; +} + /* SidebarContainer */ [class*='SidebarContainer'] { background-color: var(--pk-surface) !important; diff --git a/apps/marketing/public/admin/brand-mark.svg b/apps/marketing/public/admin/brand-mark.svg deleted file mode 100644 index 3c052a4..0000000 --- a/apps/marketing/public/admin/brand-mark.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - Singleton SD - - - Content admin - - diff --git a/apps/marketing/public/admin/config.yml b/apps/marketing/public/admin/config.yml index 1bba73b..6821636 100644 --- a/apps/marketing/public/admin/config.yml +++ b/apps/marketing/public/admin/config.yml @@ -10,7 +10,8 @@ backend: publish_mode: simple logo: - src: /admin/brand-mark.svg + # Absolute CDN URL — browsers block external refs inside SVG used as . + src: https://assets.singletonsd.com/logo/static/dark/circle/bg-none/512.png show_in_header: true site_url: https://www.singletonsd.com diff --git a/apps/marketing/public/admin/index.html b/apps/marketing/public/admin/index.html index f7e0a2c..d752280 100644 --- a/apps/marketing/public/admin/index.html +++ b/apps/marketing/public/admin/index.html @@ -6,6 +6,26 @@ Singleton SD Content Admin + + + + diff --git a/apps/marketing/src/components/marketing/Hero.astro b/apps/marketing/src/components/marketing/Hero.astro index 90d064a..34d58a1 100644 --- a/apps/marketing/src/components/marketing/Hero.astro +++ b/apps/marketing/src/components/marketing/Hero.astro @@ -1,9 +1,12 @@ --- import Button from '../ui/Button.astro'; import PageContainer from '../shell/PageContainer.astro'; +import { SITE_NAME } from '../../lib/site'; interface Props { eyebrow?: string; + /** When set, replaces the text eyebrow with a centered brand mark. */ + brandLogo?: string; headline: string; subheadline?: string; primaryCta?: { label: string; href: string }; @@ -13,18 +16,30 @@ interface Props { const { eyebrow, + brandLogo, headline, subheadline, primaryCta, secondaryCta, class: className = '', } = Astro.props; + +const brandLogoAlt = eyebrow || SITE_NAME; ---
{ - eyebrow ? ( + brandLogo ? ( + {brandLogoAlt} + ) : eyebrow ? (

{eyebrow}

diff --git a/apps/marketing/src/components/shell/SiteFooter.astro b/apps/marketing/src/components/shell/SiteFooter.astro index 48c98d8..cf156df 100644 --- a/apps/marketing/src/components/shell/SiteFooter.astro +++ b/apps/marketing/src/components/shell/SiteFooter.astro @@ -1,14 +1,13 @@ --- import Icon from '../ui/Icon.astro'; import { footerColumns } from '../../lib/nav'; +import { LOGO_DARK, SITE_NAME } from '../../lib/site'; interface Props { - brand?: string; blurb?: string; } const { - brand = 'Singleton SD', blurb = 'Custom software, cloud on Azure, product engineering, and design systems.', } = Astro.props; @@ -19,10 +18,16 @@ const year = new Date().getFullYear();
-
- {brand} - -
+ + +

{blurb}

diff --git a/apps/marketing/src/components/shell/SiteHeader.astro b/apps/marketing/src/components/shell/SiteHeader.astro index 4bd3ee7..42c8456 100644 --- a/apps/marketing/src/components/shell/SiteHeader.astro +++ b/apps/marketing/src/components/shell/SiteHeader.astro @@ -2,18 +2,13 @@ import Button from '../ui/Button.astro'; import Icon from '../ui/Icon.astro'; import { appCta, primaryNav } from '../../lib/nav'; +import { LOGO_LIGHT, SITE_NAME } from '../../lib/site'; interface Props { currentPath?: string; - brand?: string; - tagline?: string; } -const { - currentPath = '/', - brand = 'Singleton SD', - tagline = 'Software Development', -} = Astro.props; +const { currentPath = '/' } = Astro.props; function isActive(href: string) { if (href === '/') return currentPath === '/'; @@ -23,10 +18,19 @@ function isActive(href: string) {
- - {brand} - - + +