feat: establish GeoIntel and ITWorx branding
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-26 02:51:58 +02:00
parent b65db69bfc
commit d79f751773
18 changed files with 126 additions and 45 deletions
@@ -27,6 +27,7 @@ describe('LandingPage', () => {
render(<LandingPage onAuthenticated={onAuthenticated} />)
expect(screen.getByRole('heading', { name: /Operationele GIS-analyse/i })).toBeTruthy()
expect(screen.getByRole('img', { name: 'ITWorx.tech' })).toBeTruthy()
fireEvent.change(screen.getByLabelText('Gebruikersnaam'), { target: { value: 'operator' } })
fireEvent.change(screen.getByLabelText('Wachtwoord'), { target: { value: 'correct' } })
fireEvent.click(screen.getAllByRole('button', { name: 'Inloggen' })[1])
+7 -2
View File
@@ -16,6 +16,8 @@ import { login } from '../../services/api/auth'
import type { AuthSession } from '../../services/api/auth'
import { formatError } from '../../lib/formatError'
import '../../styles/landing.css'
import { GeoIntelMark } from '../brand/GeoIntelBrand'
import { ItWorxSignature } from '../brand/ItWorxSignature'
interface LandingPageProps {
onAuthenticated: (session: AuthSession) => void
@@ -86,7 +88,7 @@ export function LandingPage({ onAuthenticated, serviceError = null }: LandingPag
<a className="landing-skip-link" href="#login-panel">Ga naar aanmelden</a>
<header className="landing-header">
<a className="landing-brand" href="#top" aria-label="GeoIntel Atlas startpagina">
<span className="landing-brand-mark" aria-hidden="true">GI</span>
<GeoIntelMark className="landing-brand-mark" />
<span>GeoIntel Atlas</span>
</a>
<button
@@ -222,7 +224,10 @@ export function LandingPage({ onAuthenticated, serviceError = null }: LandingPag
<footer className="landing-footer">
<div><strong>GeoIntel Atlas Workbench</strong><p>Operationele GIS-analyse voor België en de Belgische Noordzee.</p></div>
<p>© {new Date().getFullYear()} GeoIntel · Interne operatoromgeving</p>
<div className="landing-footer-ownership">
<ItWorxSignature />
<p>© {new Date().getFullYear()} GeoIntel · Interne operatoromgeving</p>
</div>
</footer>
</div>
)
@@ -0,0 +1,14 @@
interface GeoIntelMarkProps {
className?: string
}
export function GeoIntelMark({ className = '' }: GeoIntelMarkProps): JSX.Element {
return (
<img
className={`geointel-mark ${className}`.trim()}
src="/geointel-icon.svg"
alt=""
aria-hidden="true"
/>
)
}
@@ -0,0 +1,8 @@
export function ItWorxSignature(): JSX.Element {
return (
<div className="itworx-signature" aria-label="Ontwikkeld door Jens van ITWorx.tech">
<span>Ontwikkeld door Jens</span>
<img src="/itworx-wordmark.png" alt="ITWorx.tech" />
</div>
)
}
@@ -10,6 +10,8 @@ import {
type LucideIcon,
} from 'lucide-react'
import type { WorkspaceKey } from '../overview/OverviewWorkspace'
import { GeoIntelMark } from '../brand/GeoIntelBrand'
import { ItWorxSignature } from '../brand/ItWorxSignature'
export interface WorkspaceNavigationItem {
key: WorkspaceKey
@@ -49,7 +51,7 @@ export function WorkbenchNavigation({
return (
<aside className="workbench-sidebar" aria-label="Navigatie van de werkruimte">
<div className="sidebar-brand" aria-label="GeoIntel">
<span className="brand-mark" aria-hidden="true">GI</span>
<GeoIntelMark className="brand-mark" />
<span className="sidebar-brand-copy">
<strong>GeoIntel</strong>
<small>Atlas Workbench</small>
@@ -85,6 +87,7 @@ export function WorkbenchNavigation({
</div>
))}
</nav>
<ItWorxSignature />
</aside>
)
}