krz/brand-bench

A dynamic brand documentation generator with Ollama integration.

clone: git clone https://gitbay.org/krz/brand-bench.git

main: src/types.ts · raw

  1export interface BrandInputs {
  2  name: string;
  3  category: string;
  4  purpose: string;
  5  audience: string;
  6  tone: string[];
  7  avoid: string[];
  8  notes: string;
  9}
 10
 11export interface ToneGuidance {
 12  attributes: string[];
 13  voiceNotes: string;
 14  avoidList: string[];
 15  examplePhrases: string[];
 16}
 17
 18export interface VisualDirection {
 19  id: string;
 20  name: string;
 21  description: string;
 22  palette: string;
 23  typography: string;
 24  references: string;
 25}
 26
 27export interface LogoConcept {
 28  id: string;
 29  title: string;
 30  concept: string;
 31  mark: string;
 32  execution: string;
 33}
 34
 35export interface UsageExample {
 36  context: string;
 37  text: string;
 38}
 39
 40export interface TypographyToken {
 41  label: string;
 42  size: string;
 43  weight: string;
 44  lineHeight: string;
 45  usage: string;
 46}
 47
 48export interface Typography {
 49  primary: string;
 50  secondary: string;
 51  mono: string;
 52  pairNote: string;
 53  scale: TypographyToken[];
 54}
 55
 56export interface ColorSwatch {
 57  id: string;
 58  name: string;
 59  hex: string;
 60  role: string;
 61}
 62
 63export interface ColorPalette {
 64  swatches: ColorSwatch[];
 65}
 66
 67export interface BrandOutputs {
 68  overview: string;
 69  positioning: string;
 70  tone: ToneGuidance;
 71  titles: string[];
 72  subtitles: string[];
 73  taglines: string[];
 74  visualDirections: VisualDirection[];
 75  palette: ColorPalette;
 76  typography: Typography;
 77  logoConcepts: LogoConcept[];
 78  usageExamples: UsageExample[];
 79  constraints: string[];
 80}
 81
 82export interface LockedSections {
 83  overview: boolean;
 84  positioning: boolean;
 85  tone: boolean;
 86  messaging: boolean;
 87  visual: boolean;
 88  palette: boolean;
 89  typography: boolean;
 90  logo: boolean;
 91  usage: boolean;
 92  constraints: boolean;
 93}
 94
 95export interface WorkspaceState {
 96  inputs: BrandInputs;
 97  outputs: BrandOutputs | null;
 98  edits: Partial<BrandOutputs>;
 99  locked: LockedSections;
100}