circulartext commited on
Commit
f73ff3e
·
verified ·
1 Parent(s): a921fc6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -97,22 +97,38 @@ def generate_word_design(word, word_id, use_color=False):
97
  }
98
 
99
  if use_color:
100
- style['animation'] = f'{animation_name} 0.8s ease-in-out infinite'
 
101
  style['animation-delay'] = f'{i * 0.15}s'
102
 
103
  style_str = '; '.join([f'{k}: {v}' for k, v in style.items()])
104
  styled_letter = f'<span class="styled-letter" style="{style_str}">{letter}</span>'
105
  styled_letters.append(styled_letter)
106
 
107
- # Create keyframes for movement animation
108
  keyframes = f"""
109
  <style>
110
  @keyframes {animation_name} {{
111
- 0% {{ transform: scale(1) rotate(0deg) skew({random.choice(skew_angles)}); }}
112
- 25% {{ transform: scale(1.3) rotate({random.choice(["-15deg", "15deg", "20deg"])}deg) skew({random.choice(skew_angles)}); }}
113
- 50% {{ transform: scale(0.9) rotate({random.choice(["-10deg", "10deg", "25deg"])}deg) skew({random.choice(skew_angles)}); }}
114
- 75% {{ transform: scale(1.2) rotate({random.choice(["-5deg", "5deg", "30deg"])}deg) skew({random.choice(skew_angles)}); }}
115
- 100% {{ transform: scale(1.1) rotate(0deg) skew({random.choice(skew_angles)}); }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  }}
117
  </style>
118
  """ if use_color else ""
@@ -204,7 +220,7 @@ def trigger_movement(input_html):
204
  # Replace each word with its completely new animated version
205
  for i, word in enumerate(selected_words):
206
  if i in original_word_designs:
207
- # Generate COMPLETELY NEW design with color and animation
208
  new_movement_design = generate_word_design(word, i, use_color=True)
209
  # Replace the original design with the new one
210
  updated_html = updated_html.replace(original_word_designs[i], new_movement_design, 1)
@@ -213,7 +229,7 @@ def trigger_movement(input_html):
213
 
214
  # Create Gradio interface using Blocks
215
  with gr.Blocks() as demo:
216
- gr.Markdown("# Random Word Styler\nGenerate 5 random styled words that transform into completely new styles!")
217
 
218
  generate_button = gr.Button("Generate Random Words", variant="primary")
219
  output_html = gr.HTML()
 
97
  }
98
 
99
  if use_color:
100
+ # Animation plays once and stops (no infinite)
101
+ style['animation'] = f'{animation_name} 1.2s ease-in-out forwards'
102
  style['animation-delay'] = f'{i * 0.15}s'
103
 
104
  style_str = '; '.join([f'{k}: {v}' for k, v in style.items()])
105
  styled_letter = f'<span class="styled-letter" style="{style_str}">{letter}</span>'
106
  styled_letters.append(styled_letter)
107
 
108
+ # Create keyframes for movement animation - plays once and stops
109
  keyframes = f"""
110
  <style>
111
  @keyframes {animation_name} {{
112
+ 0% {{
113
+ transform: scale(1) rotate(0deg) skew({random.choice(skew_angles)});
114
+ opacity: 0.7;
115
+ }}
116
+ 25% {{
117
+ transform: scale(1.3) rotate({random.choice(["-15deg", "15deg", "20deg"])}deg) skew({random.choice(skew_angles)});
118
+ opacity: 1;
119
+ }}
120
+ 50% {{
121
+ transform: scale(0.9) rotate({random.choice(["-10deg", "10deg", "25deg"])}deg) skew({random.choice(skew_angles)});
122
+ opacity: 1;
123
+ }}
124
+ 75% {{
125
+ transform: scale(1.2) rotate({random.choice(["-5deg", "5deg", "30deg"])}deg) skew({random.choice(skew_angles)});
126
+ opacity: 1;
127
+ }}
128
+ 100% {{
129
+ transform: scale(1.1) rotate(0deg) skew({random.choice(skew_angles)});
130
+ opacity: 1;
131
+ }}
132
  }}
133
  </style>
134
  """ if use_color else ""
 
220
  # Replace each word with its completely new animated version
221
  for i, word in enumerate(selected_words):
222
  if i in original_word_designs:
223
+ # Generate COMPLETELY NEW design with color and animation (that stops)
224
  new_movement_design = generate_word_design(word, i, use_color=True)
225
  # Replace the original design with the new one
226
  updated_html = updated_html.replace(original_word_designs[i], new_movement_design, 1)
 
229
 
230
  # Create Gradio interface using Blocks
231
  with gr.Blocks() as demo:
232
+ gr.Markdown("# Random Word Styler\nGenerate 5 random styled words that transform with a one-time animation!")
233
 
234
  generate_button = gr.Button("Generate Random Words", variant="primary")
235
  output_html = gr.HTML()