Files

19 lines
668 B
TypeScript

// The shapes both halves of the branding contract use: the procedures (index.ts) and the stylesheet
// layer a brand becomes (style.ts). A file of its own so neither imports the other.
import { z } from "zod"
export const LOGO_VARIANTS = ["light", "dark"] as const
export type LogoVariant = (typeof LOGO_VARIANTS)[number]
/** `null` is "not set": the app's own brand shows through. */
export const brandViewSchema = z.object({
displayName: z.string().nullable(),
primary: z.string().nullable(),
accent: z.string().nullable(),
logoLight: z.string().nullable(),
logoDark: z.string().nullable(),
})
export type BrandView = z.output<typeof brandViewSchema>