Thais Carla diz que sempre foi feliz antes de emagrecer: “Nunca esteve ligada ao peso”
Thais Carla interagiu com os seguidores nas redes sociais nesta segunda-feira (14/9) e abriu o jogo sobre sua visão de felicidade. A influenciadora, que perdeu cerca de 113 kg após passar por uma cirurgia bariátrica e iniciar um processo de emagrecimento auxiliado por mudanças de hábitos, garantiu que nunca se sentiu triste, mesmo quando ainda estava acima do peso.
A dançarina respondeu às dúvidas dos seguidores por meio de uma caixa de perguntas nos Stories do Instagram: “Você está feliz agora?”, perguntou uma fã. Ela então rebateu: “Eu sempre fui feliz, inclusive antes da bariátrica”, disparou.
(function () {
var AD_UNIT = ‘ld-m-art-r1-01’;
var PLACEMENT = ‘846612’;
var DEVICE = ‘mobile’;
var MIN_H = 280;
var done = false;
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() {
return document.getElementById(AD_UNIT);
}
function hide() {
var b = box();
if (b) b.style.display = 'none';
}
function register() {
if (done) return;
done = true;
if (!rightDevice()) {
hide();
return;
}
var b = box();
if (b) {
b.style.minHeight = MIN_H + 'px';
}
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) {
hide();
}
});
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) {
hide();
}
}, 6000);
}
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = {
subs: [],
fired: false
};
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true ||
v === 1 ||
v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) {
clearInterval(C.poll);
C.poll = null;
}
for (var i = 0; i < C.subs.length; i++) {
try {
C.subs[i]();
} catch (e) {}
}
var inject = function () {
if (document.getElementById('ap-js')) {
return;
}
var ver = new Date()
.toISOString()
.split(':')[0]
.replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src =
'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
if (document.readyState === 'loading') {
document.addEventListener(
'DOMContentLoaded',
function () {
setTimeout(inject, 0);
}
);
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if (
(e && e.detail === true) ||
C.granted()
) {
C.fire();
}
}
window.addEventListener(
'ld-ad-consent',
onSignal
);
document.addEventListener(
'ld-ad-consent',
onSignal
);
if (typeof window.__tcfapi === 'function') {
window.__tcfapi(
'addEventListener',
2,
function (tcData, success) {
if (!success || !tcData) {
return;
}
if (
tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete'
) {
return;
}
if (
tcData.purpose &&
tcData.purpose.consents &&
tcData.purpose.consents[1]
) {
C.fire();
}
}
);
}
C.poll = setInterval(function () {
if (C.fired) {
clearInterval(C.poll);
C.poll = null;
return;
}
if (C.granted()) {
C.fire();
}
}, 250);
}
C.subs.push(register);
if (C.fired) {
register();
} else if (C.granted()) {
C.fire();
}
})();
Veja as fotos
(function () {
var AD_UNIT = ‘ld-m-art-r1-02’;
var PLACEMENT = ‘846681’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;
/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }
/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}
/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */
/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}
/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}
C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();
“Existe essa ideia de que a gente precisa emagrecer para finalmente ser feliz, e eu nunca enxerguei dessa forma. Minha felicidade nunca esteve ligada ao meu peso. Eu sou e sempre fui feliz”, completou, na sequência.
A influenciadora ainda falou sobre o que os admiradores podem esperar de sua nova fase: “Novos projetos, novas experiências, muito autocuidado e uma Thais cada vez mais disposta a viver tudo que essa nova fase tem para oferecer. Mas a essência continua a mesma”, declarou.
(function () {
var AD_UNIT = ‘ld-m-art-r1-03’;
var PLACEMENT = ‘846688’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;
/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}
function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }
/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}
/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };
C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};
C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};
function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */
/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}
/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}
C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();
Por fim, Thais comentou sua relação com a moda: “Pra mim sempre foi uma forma de me expressar. Nunca foi fácil encontrar roupas que eu gostasse por ser uma mulher gorda. Mesmo assim eu sempre dava meu jeito porque sempre amei esse universo e nunca deixei de me vestir como eu queria”, concluiu.








