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