@@ -10,7 +10,8 @@ import type { FontStyle } from "./types";
1010 * - Founder: Balanced, neutral, max 3 lines
1111 * - Billboard: Bold, expressive, max 2 lines
1212 * - Terminal: Compact, technical, max 4 lines
13- * - Editorial: Elegant, serif, max 2 lines
13+ * - Friendly: Warm, rounded, max 3 lines
14+ * - Premium: Display serif, max 2 lines
1415 */
1516
1617export interface TypographyScalingRules {
@@ -70,6 +71,28 @@ export const FONT_STYLE_SCALING_RULES: Record<FontStyle, TypographyScalingRules>
7071 titleLetterSpacing : - 0.01 ,
7172 subtitleLetterSpacing : - 0.01 ,
7273 } ,
74+ friendly : {
75+ titleMinSize : 2.25 ,
76+ titleMaxSize : 4.25 ,
77+ subtitleMinSize : 1.0 ,
78+ subtitleMaxSize : 1.4 ,
79+ titleLineHeight : 1.12 ,
80+ subtitleLineHeight : 1.45 ,
81+ titleMaxLines : 3 ,
82+ subtitleMaxLines : 3 ,
83+ titleLetterSpacing : - 0.01 ,
84+ } ,
85+ premium : {
86+ titleMinSize : 2.5 ,
87+ titleMaxSize : 4.75 ,
88+ subtitleMinSize : 1.0 ,
89+ subtitleMaxSize : 1.35 ,
90+ titleLineHeight : 1.02 ,
91+ subtitleLineHeight : 1.4 ,
92+ titleMaxLines : 2 ,
93+ subtitleMaxLines : 2 ,
94+ titleLetterSpacing : - 0.01 ,
95+ } ,
7396
7497} ;
7598
@@ -92,7 +115,6 @@ export function getTitleClasses(fontStyle: FontStyle, textLength?: number): stri
92115 const rules = FONT_STYLE_SCALING_RULES [ fontStyle ] ;
93116
94117 const baseClasses = [
95- "font-bold" ,
96118 "text-balance" ,
97119 "overflow-wrap-anywhere" ,
98120 ] ;
@@ -104,9 +126,11 @@ export function getTitleClasses(fontStyle: FontStyle, textLength?: number): stri
104126
105127 // Add style-specific classes
106128 const styleClasses : Record < FontStyle , string [ ] > = {
107- founder : [ "tracking-tight" ] ,
129+ founder : [ "tracking-tight" , "font-bold" ] ,
108130 billboard : [ "tracking-tighter" , "font-extrabold" ] ,
109- terminal : [ "tracking-tight" , "font-mono" ] ,
131+ terminal : [ "tracking-tight" , "font-bold" , "font-mono" ] ,
132+ friendly : [ "tracking-tight" , "font-semibold" ] ,
133+ premium : [ "tracking-tighter" , "font-normal" ] ,
110134 } ;
111135
112136 baseClasses . push ( ...styleClasses [ fontStyle ] ) ;
@@ -136,6 +160,8 @@ export function getSubtitleClasses(fontStyle: FontStyle, textLength?: number): s
136160 founder : [ "tracking-normal" ] ,
137161 billboard : [ "tracking-tight" , "font-medium" ] ,
138162 terminal : [ "tracking-tight" , "font-mono" ] ,
163+ friendly : [ "tracking-normal" , "font-normal" ] ,
164+ premium : [ "tracking-tight" , "font-normal" ] ,
139165 } ;
140166
141167 baseClasses . push ( ...styleClasses [ fontStyle ] ) ;
0 commit comments