Rename to Gatehouse

Update branding and visuals to reflect Gatehouse branding across layouts, navigation, and pages; replace Authy2 references with Gatehouse, adopt Gatehouse logo, and apply enterprise-style design system.

X-Lovable-Edit-ID: edt-8c42331f-7e14-427e-8490-86d7aaab17ee
This commit is contained in:
gpt-engineer-app[bot]
2026-01-06 15:17:10 +00:00
8 changed files with 95 additions and 23 deletions
+5 -7
View File
@@ -3,14 +3,12 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- TODO: Set the document title to the name of your application -->
<title>Lovable App</title>
<meta name="description" content="Lovable Generated Project" />
<meta name="author" content="Lovable" />
<title>Gatehouse — Identity & Access</title>
<meta name="description" content="Gatehouse is a self-hosted identity and access platform providing secure authentication, organization-level security policy, and OIDC-based Single Sign-On." />
<meta name="author" content="Gatehouse" />
<!-- TODO: Update og:title to match your application name -->
<meta property="og:title" content="Lovable App" />
<meta property="og:description" content="Lovable Generated Project" />
<meta property="og:title" content="Gatehouse — Identity & Access" />
<meta property="og:description" content="Secure authentication and access management for your organization." />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://lovable.dev/opengraph-image-p98pqg.png" />
+76
View File
@@ -0,0 +1,76 @@
import { cn } from "@/lib/utils";
interface GatehouseLogoProps {
size?: "sm" | "md" | "lg";
variant?: "default" | "light";
className?: string;
}
/**
* Gatehouse Logo - Abstract gate/doorway mark
* Represents controlled entry and policy enforcement
* Two vertical pillars forming a gateway with negative space
*/
export function GatehouseLogo({
size = "md",
variant = "default",
className
}: GatehouseLogoProps) {
const sizeClasses = {
sm: "w-8 h-8",
md: "w-9 h-9",
lg: "w-12 h-12",
};
const bgClasses = {
default: "bg-primary",
light: "bg-sidebar-primary",
};
const iconColor = variant === "light"
? "text-sidebar-primary-foreground"
: "text-primary-foreground";
return (
<div
className={cn(
"rounded-lg flex items-center justify-center flex-shrink-0",
sizeClasses[size],
bgClasses[variant],
className
)}
>
<svg
viewBox="0 0 24 24"
fill="none"
className={cn(
iconColor,
size === "sm" ? "w-4 h-4" : size === "md" ? "w-5 h-5" : "w-6 h-6"
)}
>
{/* Abstract gate - two pillars with archway */}
<path
d="M4 4h3v16H4V4z"
fill="currentColor"
/>
<path
d="M17 4h3v16h-3V4z"
fill="currentColor"
/>
<path
d="M7 4h10v3H7V4z"
fill="currentColor"
opacity="0.7"
/>
{/* Keyhole/entry indicator */}
<circle
cx="12"
cy="14"
r="2"
fill="currentColor"
opacity="0.5"
/>
</svg>
</div>
);
}
+5 -7
View File
@@ -1,5 +1,5 @@
import { Shield } from "lucide-react";
import { Outlet, Link } from "react-router-dom";
import { GatehouseLogo } from "@/components/branding/GatehouseLogo";
export default function PublicLayout() {
return (
@@ -10,11 +10,9 @@ export default function PublicLayout() {
{/* Header */}
<header className="relative z-10 w-full py-6 px-4">
<div className="max-w-md mx-auto">
<Link to="/" className="flex items-center gap-2 justify-center">
<div className="w-9 h-9 rounded-lg bg-primary flex items-center justify-center">
<Shield className="w-5 h-5 text-primary-foreground" />
</div>
<span className="text-xl font-semibold text-foreground tracking-tight">Authy2</span>
<Link to="/" className="flex items-center gap-2.5 justify-center">
<GatehouseLogo size="md" />
<span className="text-xl font-semibold text-foreground tracking-tight">Gatehouse</span>
</Link>
</div>
</header>
@@ -30,7 +28,7 @@ export default function PublicLayout() {
<footer className="relative z-10 py-6 px-4">
<div className="max-w-md mx-auto text-center">
<p className="text-sm text-muted-foreground">
© {new Date().getFullYear()} Authy2. Secure identity management.
© {new Date().getFullYear()} Gatehouse. Identity & Access.
</p>
</div>
</footer>
+3 -4
View File
@@ -10,6 +10,7 @@ import {
FileText,
Key,
} from "lucide-react";
import { GatehouseLogo } from "@/components/branding/GatehouseLogo";
import { NavLink } from "@/components/NavLink";
import {
Sidebar,
@@ -64,12 +65,10 @@ export function AppSidebar() {
{/* Logo */}
<SidebarHeader className="p-4 border-b border-sidebar-border">
<div className="flex items-center gap-3">
<div className="w-8 h-8 rounded-lg bg-sidebar-primary flex items-center justify-center flex-shrink-0">
<Shield className="w-4 h-4 text-sidebar-primary-foreground" />
</div>
<GatehouseLogo size="sm" variant="light" />
{!collapsed && (
<span className="text-lg font-semibold text-sidebar-foreground tracking-tight">
Authy2
Gatehouse
</span>
)}
</div>
+2 -1
View File
@@ -2,7 +2,8 @@
@tailwind components;
@tailwind utilities;
/* Authy2 Design System - Enterprise Authentication Platform
/* Gatehouse Design System - Enterprise Identity & Access Platform
Authoritative, infrastructure-grade aesthetic with slate/charcoal/muted blue palette
Colors are HSL for theming flexibility
*/
+1 -1
View File
@@ -131,7 +131,7 @@ export default function RegisterPage() {
Create your account
</h1>
<p className="text-muted-foreground mt-2">
Get started with Authy2 in seconds
Get started with Gatehouse in seconds
</p>
</div>
+2 -2
View File
@@ -61,7 +61,7 @@ export default function OIDCClientsPage() {
<div>
<h1 className="page-title">OIDC Clients</h1>
<p className="page-description">
Manage applications that authenticate via Authy2
Manage applications that authenticate via Gatehouse
</p>
</div>
<Dialog open={isCreateOpen} onOpenChange={setIsCreateOpen}>
@@ -75,7 +75,7 @@ export default function OIDCClientsPage() {
<DialogHeader>
<DialogTitle>Create OIDC Client</DialogTitle>
<DialogDescription>
Register a new application to authenticate via Authy2
Register a new application to authenticate via Gatehouse
</DialogDescription>
</DialogHeader>
<div className="space-y-4 py-4">
+1 -1
View File
@@ -74,7 +74,7 @@ export default function LinkedAccountsPage() {
<Alert className="mb-6">
<AlertCircle className="w-4 h-4" />
<AlertDescription>
Linked accounts can only be used to sign in to an existing Authy2 account.
Linked accounts can only be used to sign in to an existing Gatehouse account.
They cannot be used to create new accounts.
</AlertDescription>
</Alert>