@gleicy_daily: Já salva divas 🍯💛 #transformaçãocapilar #dopretoaoloiro #cabeloliso #loirodetinta #loiroemcasa

Gleicy | daily life ☆
Gleicy | daily life ☆
Open In TikTok:
Region: BR
Sunday 22 March 2026 20:54:52 GMT
11586
446
10
13

Music

Download

Comments

oliveiralayse
Layse Oliveira :
Lindoooo. A 12.11 chumbou demais meu cabelo 🥺🥺🫠
2026-03-29 23:54:39
1
haileymendeds
Hailey Mendes :
sinal
2026-07-30 00:30:46
0
renataferreira9234
Renata Ferreira. UGC :
lindíssimo💖💖💖
2026-03-24 00:23:58
1
jocelia.de.jesus66
Jocelia de jesus :
maravilhosa! 😍😍😍
2026-03-23 16:27:04
1
janisfrias0
Janis Frias :
🥰🥰🥰
2026-03-23 06:06:32
1
ester.c18
ester :
🥰🥰🥰
2026-03-23 11:03:21
1
To see more videos from user @gleicy_daily, please go to the Tikwm homepage.

Other Videos

How I build with Lovable 👇 Academy in bio 🔗 Turning a page into story mode with play controls, step by step: 1. Build the entire page as ONE GSAP timeline: const tl = gsap.timeline({ paused: true }). 2. Name every chapter with a label: tl.addLabel('intro').to(...).addLabel('product').to(...).addLabel('bundle').to(...). The labels are what make everything below possible. 3. Next button: tl.tweenTo('product', { duration: 1.2, ease: 'power2.inOut' }). Prev button: tl.tweenTo('intro'). You are jumping between labels, not scrolling. 4. Play and pause: tl.play() and tl.pause(). One boolean in state swaps the icon. 5. Keep the current chapter index in state and clamp it with Math.max(0, Math.min(i, labels.length - 1)), so the buttons cannot run past the ends. 6. Give the user an escape hatch. Any keydown on ArrowRight or ArrowLeft should hit the same two functions. Progress bar: 7. On the timeline: onUpdate: function() { setPct(Math.round(tl.progress() * 100)); }. 8. Fill the bar with transform: scaleX(pct / 100) and transform-origin: left. Never animate width, scaleX runs on the GPU. 9. Chunky styling: height 14px, border 3px solid #000, border-radius 999px, fill in the accent color. That thick black border is what makes it read as a game instead of a form field. Unlock toast: 10. Fire it exactly once: if (tl.progress() > 0.75 && !unlocked.current) { unlocked.current = true; showToast(); }. The ref is what stops it firing 60 times a second. 11. Animate it in: gsap.fromTo(el, { y: 40, opacity: 0 }, { y: 0, opacity: 1, duration: 0.5, ease: 'back.out(1.7)' }). That overshoot is what makes it feel like a reward. Sticker type: 12. -webkit-text-stroke: 6px #000 with a solid fill, then text-shadow: 6px 6px 0 #000 for the hard offset, then transform: rotate(-3deg). Three properties, zero images. Impact marks: 13. Each burst is an inline SVG, position absolute. Animate scale from 0 to 1 with ease 'back.out(2.5)' and stagger 0.06. Set transform-origin: center or they shoot off the screen. Save this if you want a page that plays like a game 🎮 #lovablepartner #buildinpublic
How I build with Lovable 👇 Academy in bio 🔗 Turning a page into story mode with play controls, step by step: 1. Build the entire page as ONE GSAP timeline: const tl = gsap.timeline({ paused: true }). 2. Name every chapter with a label: tl.addLabel('intro').to(...).addLabel('product').to(...).addLabel('bundle').to(...). The labels are what make everything below possible. 3. Next button: tl.tweenTo('product', { duration: 1.2, ease: 'power2.inOut' }). Prev button: tl.tweenTo('intro'). You are jumping between labels, not scrolling. 4. Play and pause: tl.play() and tl.pause(). One boolean in state swaps the icon. 5. Keep the current chapter index in state and clamp it with Math.max(0, Math.min(i, labels.length - 1)), so the buttons cannot run past the ends. 6. Give the user an escape hatch. Any keydown on ArrowRight or ArrowLeft should hit the same two functions. Progress bar: 7. On the timeline: onUpdate: function() { setPct(Math.round(tl.progress() * 100)); }. 8. Fill the bar with transform: scaleX(pct / 100) and transform-origin: left. Never animate width, scaleX runs on the GPU. 9. Chunky styling: height 14px, border 3px solid #000, border-radius 999px, fill in the accent color. That thick black border is what makes it read as a game instead of a form field. Unlock toast: 10. Fire it exactly once: if (tl.progress() > 0.75 && !unlocked.current) { unlocked.current = true; showToast(); }. The ref is what stops it firing 60 times a second. 11. Animate it in: gsap.fromTo(el, { y: 40, opacity: 0 }, { y: 0, opacity: 1, duration: 0.5, ease: 'back.out(1.7)' }). That overshoot is what makes it feel like a reward. Sticker type: 12. -webkit-text-stroke: 6px #000 with a solid fill, then text-shadow: 6px 6px 0 #000 for the hard offset, then transform: rotate(-3deg). Three properties, zero images. Impact marks: 13. Each burst is an inline SVG, position absolute. Animate scale from 0 to 1 with ease 'back.out(2.5)' and stagger 0.06. Set transform-origin: center or they shoot off the screen. Save this if you want a page that plays like a game 🎮 #lovablepartner #buildinpublic

About