#ToddlerSkincare: The troubling world of children's beauty videos on TikTok

#ToddlerSkincare: The troubling world of children's beauty videos on TikTok

A Guardian investigation has found that children as young as two are appearing in TikTok videos showing off their skincare routines. This has raised concerns about the beauty industry’s influence and the lack of protections for child influencers.

The research analyzed 7,600 skincare-related posts and found that 400 of these videos featured routines or advice from children believed to be under 13. At least 90 of these posts included children under five, including babies and toddlers.

More than 1,000 videos featured someone believed to be under 18, which is almost one in seven of the videos in the sample.

While the posts did not always clarify the child’s relationship with the brand, many closely resembled advertising.

Dermatologists warn that children do not need multi-step skincare routines and that this trend is causing anxiety about appearance at younger ages. One dermatologist mentioned she is increasingly having to reassure children that what parents see as blemishes are actually just normal skin.

One of the posts analyzed shows a primary-school-aged child doing a skincare routine before school. She holds up products to the camera, explaining that she is trying to achieve “glass skin”—a term for a very hydrated and smooth complexion.

In another video, a mother holds her two-year-old up to the camera and prompts her to say, “welcome to my skincare,” before applying what looks like moisturizer to her daughter’s face, using the hashtag #toddlersoftiktok.For elements with the attribute `data-gu-name=”media”` inside `.content–interactive-grid`, set the left alignment to 20 pixels.

When the viewport is at least 660 pixels wide, these elements should have a width equal to the full viewport width minus the scrollbar width, with a left margin of -20 pixels and no right margin.

At a viewport width of 740 pixels or more, set a custom property `–grid-width` to 740px. The left margin is calculated to center the grid, accounting for the grid width, scrollbar, and a left column width. The left alignment property is also calculated for positioning.

For viewports of 980 pixels or wider, update `–grid-width` to 980px.

At 1140 pixels, set `–grid-width` to 1140px and define `–grid-left-col-width` as 161px.

For screens 1300 pixels or wider, update `–grid-width` to 1300px and `–grid-left-col-width` to 240px.

Set the following color variables for the body:
– Primary text color: #dcdcdc
– Secondary text color: #c8c8c8
– Tertiary text color: #999999
– Primary background color: #1a1a1a
– Secondary background color: #383838
– Tertiary background color: #121212
– Primary line color: #dcdcdc
– Secondary line color: #707070
– Border divider color: #606060
– Axis color: matches the news grey 04 color
– Primary button color: #383838
– Primary button text color: #dcdcdc
– Primary button highlight color: #707070
– Highlight color: #cda500
– Highlighted text color: #121212
– Info color: #0077b6
– News grey colors from 01 (#dcdcdc) to 06 (#383838)
– News core colors from 01 (#0077b6) to 06 (#cca36e)
– Accent violet: #8F71F2 (with !important)

Apply the primary background color to the body and set the background for elements with the class `.element–immersive` to match.

For paragraphs inside `.content__main-column–interactive`, use the primary text color.

When the user’s system prefers a dark color scheme and the light scheme is not forced, apply the same set of dark theme color variables.

Remove the focus box shadow from the element with the ID `maincontent`.

Import Sass modules for media queries, typography mixins, and chart mixins.

Style the outer scroller container to be a block-level, relatively positioned element.

Style the scroller background and foreground as block-level, relatively positioned elements, with the foreground having a higher z-index and clearing floats.

Style the background container to be absolutely positioned, full width, with no pointer events, and optimized for transform changes.

Style the grid wrapper to take full viewport height and hide overflow.

Style the grid to be absolutely positioned with a CSS grid layout, setting the transform origin and optimizing for transforms. Define a scale variable.

Style individual grid cells to be relatively positioned with hidden overflow and a transparent background. Apply a smooth transition for opacity, filter, and box-shadow.

For viewports between 20em and 61.24em, give cells a border radius of 4px. For viewports 61.25em and wider, use an 8px border radius.

For cells with the class `.ended`, reduce opacity to 0.38 and apply a desaturating and darkening filter.The element with class “svelte-8a6q9c” has a background of a semi-transparent violet accent color with an opacity of 0.1.

An empty cell poster with this class is positioned absolutely, covering the entire area from edge to edge. It scales its content to cover the space, has an opacity of 0.92, and prevents user interaction and selection.

A highlighted cell with this class has full opacity. A dimmed cell has its opacity reduced to 0.3. A stacked cell has a higher z-index, a smooth opacity transition over 0.22 seconds, and rounded corners. When a stacked cell is active, it is fully visible with a high z-index and rounded corners. A hidden stacked cell is invisible, has a lower z-index, and does not respond to pointer events.

A cell label is positioned in the top-left corner with a high z-index. It uses a small font, has padding and rounded corners, and displays white text on a red background without responding to pointer events.

A video element fills its container, scales content to cover, and starts fully transparent before fading in over 0.2 seconds. When ready, it becomes fully opaque.

A karaoke box is positioned near the bottom, scales with a grid variable, and is centered with a high z-index. It has a dark semi-transparent background and padding. Its text uses a specific sans-serif font, transitions color smoothly, and is initially a light grey. Active text within it becomes white with a violet accent background.

A first-step overlay covers the entire area with a dark semi-transparent layer and a high z-index, without responding to pointer events.

A video evolution bar is positioned at the bottom, scales with a grid variable, and is a short, rounded bar with a high z-index. It has a white background and a violet fill that can be animated from the left.

A loader overlay covers the entire viewport with a dark semi-transparent background and a high z-index. It centers its content vertically and horizontally, displaying white text. The spinner is a circular loading animation with a white border that rotates continuously.

The main scrolly video container is positioned relatively. Its sections are flex containers that center their content. When snap-active, these sections align to the start and always stop at snap points.

A background container is positioned relatively, allows all pointer events, and uses flex display. It fades in and out smoothly. It starts hidden during boot.

The foreground scroller does not respond to pointer events, but the direct div children within its sections do.

An overlay wrapper covers the entire area with a 3×3 grid and does not respond to pointer events.

An audio control stack is positioned in the top-right corner with a fixed width, using flex to align items to the end. It does not respond to pointer events. In a minimal state, its transform is reset. On larger screens, it is centered horizontally and positioned 22% from the top, with a smooth transition for its position. When minimal or stacked on larger screens, it moves back to the top-right corner.

The master audio control uses the Guardian Text Sans font family.The Guardian’s analysis follows the Italian competition authority’s announcement in March that it had conducted inspections at the offices of Sephora and Benefit Cosmetics, both owned by the same parent company.French luxury group LVMH is under investigation for how its brands market skincare products to children. The watchdog reported that in some cases, girls still in primary school have been targeted with face masks, serums, and anti-aging creams primarily intended for adults.

LVMH stated that it, along with Sephora and Benefit, would “fully cooperate with the authorities” but declined further comment. “All the companies reaffirm their strict compliance with applicable Italian regulations,” it added.

The Guardian uncovered evidence that many young people featured in TikTok videos had received free products in exchange for posting about the brand online through programs open to young influencers.

While child performers in film, television, and modeling are protected by labor laws regulating working hours, pay, and safeguarding, no comparable laws exist to protect children on social media.

Victoria Collins, a Member of Parliament and the Liberal Democrats’ spokesperson for science, innovation, and technology, described the Guardian’s findings as “deeply disturbing” in “what has become a dark and exploitative corner of the internet.” Collins called it a “dangerous double standard,” noting that child influencer content often generates thousands of views and sales on social media. The Liberal Democrats are urging for the regulatory gap to be closed, as it leaves young people vulnerable to exploitation.

Although some parents may share content for fun or to document family life, experts warn that the lack of clear safeguards still poses risks, especially when children are featured in content that attracts attention or engagement.

Dermatologists also cautioned that skincare for children is largely unnecessary and could potentially harm their skin. Amy Perkins, a dermatologist, said, “Most children do not need skincare beyond gentle soap, simple moisturizing if their skin is dry, and sunscreen when outdoors. The current trend for multi-step ‘glow’ or ‘anti-aging’ routines in children is being driven by social media and marketing, not dermatology.”

Another dermatologist, Emma Wedgeworth, emphasized that very young children should not be on social media or sharing “skincare routines.” She added, “Young children do not have the necessary knowledge, skills, or judgment to assess products for their skin.”For screens wider than 1140px, the main interactive column’s full-width elements are set to a grid width of 1140px with a left column of 161px. The left margin is calculated to center the content, accounting for the scrollbar width. At 1300px and above, the grid expands to 1300px with a left column of 240px.

Media elements within the interactive grid have no maximum width and are aligned to the body’s left edge by 10px on small screens, increasing to 20px at 480px. From 660px, they span the full viewport width (minus the scrollbar) with a left margin of -20px. At 740px, the grid width becomes 740px, and the left margin is adjusted for centering, with the alignment to the body left also calculated for positioning. This grid width updates to 980px at 980px, 1140px at 1140px, and 1300px at 1300px, with corresponding left column widths.

The color scheme uses dark mode variables for text, backgrounds, lines, and buttons, with specific shades of grey and accent colors. These are also applied when the system prefers dark mode, unless a light scheme is explicitly set.

Additional styles ensure the main content area has no focus box shadow and include references to style libraries for media queries, typography, and charts. Scroller components are structured with relative positioning and clearfix handling..x70r {
display: block;
position: absolute;
width: 100%;
max-width: 100%;
pointer-events: none;
will-change: transform;
}

.grid-wrapper.svelte-8a6q9c {
width: 100%;
height: 100dvh;
position: relative;
overflow: hidden;
}

.grid.svelte-8a6q9c {
position: absolute;
display: grid;
transform-origin: 0 0;
will-change: transform;
–grid-scale: 1;
}

.cell.svelte-8a6q9c {
position: relative;
overflow: hidden;
background: transparent;
transition: opacity .22s ease, filter .22s ease, box-shadow .22s ease;
}

@media (min-width: 20em) and (max-width: 61.24em) {
.cell.svelte-8a6q9c {
border-radius: 4px;
}
}

@media (min-width: 61.25em) {
.cell.svelte-8a6q9c {
border-radius: 8px;
}
}

.cell.ended.svelte-8a6q9c {
opacity: .38;
filter: saturate(.55) brightness(.78);
}

.cell.empty.svelte-8a6q9c {
background: var(–accent-violet-transparent);
opacity: .1;
}

.empty-cell-poster.svelte-8a6q9c {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: .92;
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}

.cell.highlighted.svelte-8a6q9c {
opacity: 1;
}

.cell.dimmed.svelte-8a6q9c {
opacity: .3;
}

.cell.stacked.svelte-8a6q9c {
z-index: 2;
transition: opacity .22s ease;
border-radius: 8px;
}

.cell.stack-active.svelte-8a6q9c {
opacity: 1;
visibility: visible;
z-index: 2;
border-radius: 8px;
}

.cell.stack-hidden.svelte-8a6q9c {
opacity: 0;
visibility: hidden;
z-index: 1;
pointer-events: none;
}

.cell-label.svelte-8a6q9c {
position: absolute;
top: 6px;
left: 6px;
z-index: 2;
font-size: 11px;
line-height: 1;
padding: 4px 6px;
border-radius: 6px;
color: #fff;
background: red;
pointer-events: none;
}

video.svelte-8a6q9c {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
flex: 1 1 auto;
opacity: 0;
transition: opacity .2s ease;
}

video.ready.svelte-8a6q9c {
opacity: 1;
}

.karaoke-box.svelte-8a6q9c {
position: absolute;
top: 70%;
width: calc(100% * var(–grid-scale, 1));
text-align: center;
pointer-events: none;
z-index: 30;
transform: scale(calc(1 / var(–grid-scale, 1)));
transform-origin: top left;
background-color: #00000080;
padding: 12px;
}

.karaoke-box.svelte-8a6q9c span:where(.svelte-8a6q9c) {
transition: color .12s linear;
color: var(–news-grey-01);
font-family: GuardianTextSans, Guardian Text Sans Web, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;
font-size: 1.0625rem;
line-height: 1.3;
font-weight: 400;
font-style: normal;
–source-text-decoration-thickness: 2px;
}

.karaoke-box.svelte-8a6q9c span.active:where(.svelte-8a6q9c) {
color: #fff;
background-color: var(–accent-violet);
}

.first-step-overlay.svelte-8a6q9c {
position: absolute;
inset: 0;
background: #00000080;
pointer-events: none;
z-index: 10;
}

.video-evolution-bar.svelte-8a6q9c {
position: absolute;
width: calc(100% * var(–grid-scale, 1));
bottom: 0;
height: 8px;
border-radius: 999px;
overflow: hidden;
z-index: 25;
pointer-events: none;
transform: scale(calc(1 / var(–grid-scale, 1)));
transform-origin: left bottom;
background: #fff;
}

.video-evolution-bar__fill.svelte-8a6q9c {
width: 100%;
height: 100%;
background: var(–accent-violet);
transform-origin: left center;
}

.gv-loader-overlay.svelte-1cir09n {
position: absolute;
inset: 0;
z-index: 60;
display: grid;
place-items: center;
align-items: center;
gap: 12px;
background: #0000008c;
color: #fff;
height: 100vh;
}

.gv-loader-spinner.svelte-1cir09n {
align-self: center;
width: 36px;
height: 36px;
border-radius: 999px;
border: 3px solid rgba(255, 255, 255, .35);
border-top-color: #fff;
animation: svelte-1cir09n-gv-spin .9s linear infinite;
}

@keyframes svelte-1cir09n-gv-spin {
to {
transform: rotate(360deg);
}
}

.scrolly-video.svelte-1cir09n {
position: relative;
}

.scrolly-video.svelte-1cir09n section:where(.svelte-1cir09n) {
position: relative;
display: flex;
justify-content: center;
align-items: center;
}

.scrolly-video.snap-active.svelte-1cir09n section:where(.svelte-1cir09n) {
scroll-snap-align: start;
scroll-snap-stop: always;
}

.background-container.svelte-1cir09n {
position: relative;
pointer-events: all;
display: flex;
opacity: 1;
transition: opacity .12s linear;
}

.background-container.boot-hidden.svelte-1cir09n {
opacity: 0;
}

svelte-scroller-foreground {
pointer-events: none;
}

svelte-scroller-foreground section.svelte-1cir09n > div:where(.svelte-1cir09n) {
pointer-events: all;
}

.gv-overlay-wrapper.svelte-1cir09n {
position: absolute;
inset: 0;
display: grid;
grid-template-rows: repeat(3, 1fr);
grid-template-columns: repeat(3, 1fr);
pointer-events: none;
width: 100%;
}The audio control stack is positioned absolutely, 12px from the top and 16px from the right, with a width of 224px. It uses flexbox to align items to the end and center them vertically, has no pointer events, and no transformation applied. When the minimal modifier class is added, the transformation remains unchanged.

On larger screens (min-width: 61.25em), the stack is positioned at 22% from the top and centered horizontally (left: 50%, transform: translate(-50%)), with a smooth transition for its position and transform. When the minimal or stacked modifier classes are active on larger screens, it moves to 12px from the top and 240px from the left edge of its container, aligning to the end with no transformation.

The master audio control button uses a specific sans-serif font stack, is 224px wide and 44px tall, with internal padding, hidden overflow, white text, and a violet background with rounded corners. It has no border, left-aligned text, allows pointer events, and transitions its width and padding. It uses pseudo-elements for mute/unmute icons which toggle opacity. When the muted class is applied, the icons swap visibility.

In its minimal state, the button shrinks to 44px width with reduced padding, and the label text is masked out. The label itself is an inline-block, 180px wide, with no wrap, no pointer events, and uses a CSS mask to create a reveal animation. When the label-ready class is added (and not minimal), the mask expands fully.

A “scroll to continue” text element is absolutely positioned at 66vh from the top and horizontally centered. It uses a bold weight and includes a bouncing chevron icon animated with a keyframe animation.

A breadcrumb track is positioned on the right, vertically centered, displaying dots in a column. The dots are white circles, while the active breadcrumb is a violet circle with a smooth transform transition.

A scrolly box element uses a serif headline font, has a maximum width of 380px, and includes padding.In another clip reviewed by the Guardian, a mother introduces her 10-year-old daughter, saying the girl has long wanted to get into skincare. She explains that she was sent a product by Benefit Cosmetics to try, shows it being applied to her daughter’s face, and later claims the child’s skin is “glowing.” There is no evidence that Benefit sent the product for the child to use. Benefit Cosmetics did not respond to attempts to contact them for comment.

There has been a rise in skincare brands developed specifically for children and young teenagers. For example, Rini, which launched in November, was described by dermatologists as “dystopian” for creating face masks for four-year-olds. Another brand, Pipa skincare, targets tweens aged eight to 12 and launched in 2024.

Pipa skincare, featured in a video shared by the Guardian, stated: “It is important to clearly distinguish between age groups. Content featuring very young children, especially toddlers, raises different concerns. We do not support or participate in that type of content or marketing.” They added that they do not work with affiliates under 18, and any content featuring minors requires parental involvement.

Glow Hub, also featured in a video above, said its core audience is those born between 1997 and 2012. “Glow Hub takes its responsibility within the category seriously and has proactively implemented measures to support safe, informed skincare use.”

Danielle Granderson, co-founder of the skincare brand Yes Day, which appears in another video shared here, said the brand creates “dermatologist-tested, age-appropriate skincare specifically for tweens and early teens, with all formulas clinically tested on ages 10–16 to ensure safety and efficacy.”

A spokesperson for Bubble said the content referenced above was not affiliated with Bubble “in any official capacity.” They added, “More broadly, we do not support or encourage very young children appearing in skincare content, particularly in ways that suggest routines or product use that are not age appropriate.” The spokesperson noted that the brand’s founder and CEO is a mother of two young children and that they recognize “younger children do not need a skincare routine beyond daily sunscreen.” “Bubble is not a children’s skincare brand,” they said. “It is a dermatologist-developed, clinically proven system designed for a wide range of skin needs.”

Evereden was approached for comment but did not respond.

Byoma said 85% of its consumer base is between 18 and 35. “Our marketing, partnerships, and retail efforts are focused on this core consumer group, who are actively seeking effective, science-backed skincare,” they stated.

The Guardian monitored TikTok using three newly created accounts between October 28 and November 17 last year, tracking skincare-related hashtags and content. While the sample does not represent all skincare content on the platform, it offers a snapshot of the scale and visibility of children in this space.

Analysis of the videos suggests that those featuring young children have a higher engagement rate, with 55,400 likes, shares, and comments per video compared to the sample-wide average of 36,000 interactions. However, videos featuring adults without children received more views.

According to a TikTok spokesperson, skincare and wellness content has been well established across social media for over a decade. They said the examples shared by the Guardian featured active parental supervision and flagged aA wide community of experts uses TikTok to share skincare advice. Separate data from TikTok’s ad library shows that Boots targeted users aged 13 to 17 with retinoids, which are not recommended for young skin as they are potent anti-aging products.

Boots stated that they “apply strict age-based controls on social media to ensure our ads are only shown to adults aged 18 and over. We recognize that a human error occurred in this instance in 2024, but we are confident it was an isolated case.”

Chi Onwurah, chair of the Commons’ science, innovation and technology committee, said they recently heard evidence about the alarming rise in promoting beauty products to children on social media, often without regulation, “despite the fact these may contain potentially harmful ingredients like retinols and acids.”

“We need a stronger and more responsive online safety regime to protect people, especially children.”

A government spokesperson said every child deserves to grow up in a safe online environment to have the best start in life.

“The UK has one of the most robust online safety systems in the world, but we know more must be done. That is why we recently launched a consultation examining everything from age limits and safer design features in AI chatbots and games to a potential social media ban.”

Additional reporting by Frederick O’Brien, Simon Byford, Chloe Kirton, Emily Bourke, Nicola Alexandrou

Q&A: How the Guardian measured skincare content on TikTok

The Guardian monitored TikTok using three newly created accounts between 28 October and 17 November. By searching for several skincare-related hashtags, we tracked over 12,000 public videos.

We later removed videos unrelated to skincare or critical of using skincare products on children. Despite this, our sample may still include some such videos. The final analysis is based on 7,605 unique videos posted by 5,670 users.

We used AWS Rekognition, an AI-powered image and video detection tool, to identify human faces in the TikTok videos. For each detected face, the tool provided an estimated age range along with a confidence score.

A team of nine people manually reviewed the 3,878 videos the tool identified as featuring someone under 18 with a confidence level over 70%. The remaining videos were not counted as containing children.

This research does not aim to provide a comprehensive analysis of all skincare content on TikTok, but rather a snapshot of the scale and visibility of children in skincare-related content on the platform.

Frequently Asked Questions
FAQs Toddler Skincare Childrens Beauty Videos on TikTok

Basics Definitions
What are toddler skincare or childrens beauty videos on TikTok
These are short videos often posted by parents that show very young children using adultlike skincare products or cosmetics The content often mimics popular adult skincare routines

Why is this trend considered troubling
Childrens skin is delicate and fundamentally different from adult skin Using potent ageinappropriate products can cause irritation allergic reactions or longterm damage The trend also raises concerns about prematurely sexualizing childhood and fostering unhealthy fixations on appearance

Isnt it just harmless fun or bonding
While parentchild bonding is positive the core issue is the content and messaging Videos framed as selfcare often showcase an extensive consumerdriven routine that suggests a childs natural skin needs fixing and prioritizes aesthetics over health

Risks Problems
What are the actual physical risks to a childs skin
Skin Barrier Damage A childs skin barrier is still developing Harsh actives can strip it leading to dryness eczema or increased sensitivity
Allergic Reactions Fragrances and complex formulas common in adult products are frequent allergens
Photosensitivity Some ingredients make skin more sensitive to the sun increasing burn risk
Hormonal Disruption There is concern about early repeated exposure to certain chemical ingredients

What are the psychological or social concerns
Body Image Issues It can teach kids from a very young age that their value is tied to their appearance and that they need products to be acceptable
Premature Aging of Childhood It pushes adult concerns and consumer habits onto children robbing them of a carefree childhood
Materialism Consumerism It fosters a link between happiness selfworth and buying products

Are there any products that are actually safe for toddlers
Yes but the routine should be minimal Pediatric dermatologists recommend
A gentle fragrancefree cleanser