circulartext commited on
Commit
aa9287d
·
verified ·
1 Parent(s): 4fd8be6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -11
app.py CHANGED
@@ -55,7 +55,7 @@ def generate_word_design(word, word_id, is_animated=False):
55
  letter_spacings = ["-1px", "0px", "1px", "2px"]
56
  text_shadows = ["0px 0px 1px #000", "0px 0px 2px #000", "1px 0px 0px #000", "0px 0px 0px #000"]
57
  skew_angles = ["-25deg", "-20deg", "-15deg", "-10deg", "0deg", "10deg", "15deg", "20deg", "25deg"]
58
- colors = ["#000000"]
59
  else:
60
  # Animated state values
61
  font_sizes = ["20px", "22px", "24px", "26px"]
@@ -63,7 +63,7 @@ def generate_word_design(word, word_id, is_animated=False):
63
  letter_spacings = ["-3px", "-2px", "0px", "2px", "3px", "4px"]
64
  text_shadows = ["0px 0px 5px", "2px 2px 4px", "0px 0px 8px", "3px 3px 6px", "1px 1px 10px"]
65
  skew_angles = ["-35deg", "-25deg", "0deg", "25deg", "35deg", "45deg"]
66
- colors = [f"#{random.randint(0, 0xFFFFFF):06x}" for _ in range(10)]
67
 
68
  letters = list(word)
69
  styled_letters = []
@@ -77,7 +77,7 @@ def generate_word_design(word, word_id, is_animated=False):
77
  if not is_animated:
78
  # Store original values for later animation
79
  if word_id not in original_designs:
80
- original_designs[word_id] = {'letters': []}
81
 
82
  original_styles = {
83
  'font_family': random.choice(fonts),
@@ -87,9 +87,10 @@ def generate_word_design(word, word_id, is_animated=False):
87
  'skew_angle': random.choice(skew_angles),
88
  'margin_top': random.choice(["-0.02cm", "0.00cm", "0.02cm"]),
89
  'top': random.choice(font_tops),
90
- 'color': '#000000'
91
  }
92
  original_designs[word_id]['letters'].append(original_styles)
 
93
 
94
  style = {
95
  'font-family': original_styles['font_family'],
@@ -109,13 +110,13 @@ def generate_word_design(word, word_id, is_animated=False):
109
  else:
110
  # Create animated version with keyframes
111
  original_letter_styles = original_data['letters'][i] if i < len(original_data.get('letters', [])) else {}
 
112
 
113
- # New target values
114
  new_font_family = random.choice(fonts)
115
  new_font_size = random.choice(font_sizes)
116
  new_letter_spacing = random.choice(letter_spacings)
117
- new_color = random.choice(colors)
118
- new_text_shadow = f"{random.choice(text_shadows)} {new_color}"
119
  new_skew_angle = random.choice(skew_angles)
120
  new_top = random.choice(font_tops)
121
  new_margin_top = random.choice(["-0.05cm", "0.00cm", "0.03cm", "0.05cm"])
@@ -147,7 +148,7 @@ def generate_word_design(word, word_id, is_animated=False):
147
  25% {{
148
  font-size: {new_font_size};
149
  letter-spacing: {new_letter_spacing};
150
- color: {new_color};
151
  text-shadow: {new_text_shadow};
152
  transform: skew({new_skew_angle}) scale(1.2);
153
  top: {new_top};
@@ -162,7 +163,7 @@ def generate_word_design(word, word_id, is_animated=False):
162
  100% {{
163
  font-size: {new_font_size};
164
  letter-spacing: {new_letter_spacing};
165
- color: {new_color};
166
  text-shadow: {new_text_shadow};
167
  transform: skew({new_skew_angle}) scale(1);
168
  top: {new_top};
@@ -181,7 +182,7 @@ def generate_word_design(word, word_id, is_animated=False):
181
  'margin-top': new_margin_top,
182
  'position': 'relative',
183
  'top': new_top,
184
- 'color': new_color,
185
  'display': 'inline-block',
186
  'margin': '0 1px',
187
  'vertical-align': 'middle',
@@ -307,7 +308,7 @@ def trigger_movement(input_html):
307
 
308
  # Create Gradio interface using Blocks
309
  with gr.Blocks() as demo:
310
- gr.Markdown("# Random Word Styler\nWords progressively transition from original styling to new styling!")
311
 
312
  generate_button = gr.Button("Generate Random Words", variant="primary")
313
  output_html = gr.HTML()
 
55
  letter_spacings = ["-1px", "0px", "1px", "2px"]
56
  text_shadows = ["0px 0px 1px #000", "0px 0px 2px #000", "1px 0px 0px #000", "0px 0px 0px #000"]
57
  skew_angles = ["-25deg", "-20deg", "-15deg", "-10deg", "0deg", "10deg", "15deg", "20deg", "25deg"]
58
+ word_color = "#000000" # All letters in original word are black
59
  else:
60
  # Animated state values
61
  font_sizes = ["20px", "22px", "24px", "26px"]
 
63
  letter_spacings = ["-3px", "-2px", "0px", "2px", "3px", "4px"]
64
  text_shadows = ["0px 0px 5px", "2px 2px 4px", "0px 0px 8px", "3px 3px 6px", "1px 1px 10px"]
65
  skew_angles = ["-35deg", "-25deg", "0deg", "25deg", "35deg", "45deg"]
66
+ word_color = f"#{random.randint(0, 0xFFFFFF):06x}" # ONE color for the entire word
67
 
68
  letters = list(word)
69
  styled_letters = []
 
77
  if not is_animated:
78
  # Store original values for later animation
79
  if word_id not in original_designs:
80
+ original_designs[word_id] = {'letters': [], 'word_color': word_color}
81
 
82
  original_styles = {
83
  'font_family': random.choice(fonts),
 
87
  'skew_angle': random.choice(skew_angles),
88
  'margin_top': random.choice(["-0.02cm", "0.00cm", "0.02cm"]),
89
  'top': random.choice(font_tops),
90
+ 'color': word_color # Same color for all letters in this word
91
  }
92
  original_designs[word_id]['letters'].append(original_styles)
93
+ original_designs[word_id]['word_color'] = word_color
94
 
95
  style = {
96
  'font-family': original_styles['font_family'],
 
110
  else:
111
  # Create animated version with keyframes
112
  original_letter_styles = original_data['letters'][i] if i < len(original_data.get('letters', [])) else {}
113
+ original_word_color = original_data.get('word_color', '#000000')
114
 
115
+ # New target values (but same color for all letters in this word)
116
  new_font_family = random.choice(fonts)
117
  new_font_size = random.choice(font_sizes)
118
  new_letter_spacing = random.choice(letter_spacings)
119
+ new_text_shadow = f"{random.choice(text_shadows)} {word_color}" # Use word_color for shadow
 
120
  new_skew_angle = random.choice(skew_angles)
121
  new_top = random.choice(font_tops)
122
  new_margin_top = random.choice(["-0.05cm", "0.00cm", "0.03cm", "0.05cm"])
 
148
  25% {{
149
  font-size: {new_font_size};
150
  letter-spacing: {new_letter_spacing};
151
+ color: {word_color};
152
  text-shadow: {new_text_shadow};
153
  transform: skew({new_skew_angle}) scale(1.2);
154
  top: {new_top};
 
163
  100% {{
164
  font-size: {new_font_size};
165
  letter-spacing: {new_letter_spacing};
166
+ color: {word_color};
167
  text-shadow: {new_text_shadow};
168
  transform: skew({new_skew_angle}) scale(1);
169
  top: {new_top};
 
182
  'margin-top': new_margin_top,
183
  'position': 'relative',
184
  'top': new_top,
185
+ 'color': word_color, # Same color for all letters in this word
186
  'display': 'inline-block',
187
  'margin': '0 1px',
188
  'vertical-align': 'middle',
 
308
 
309
  # Create Gradio interface using Blocks
310
  with gr.Blocks() as demo:
311
+ gr.Markdown("# Random Word Styler\nEach word gets ONE color and transitions from original to new styling!")
312
 
313
  generate_button = gr.Button("Generate Random Words", variant="primary")
314
  output_html = gr.HTML()