Scuffles broke out between protesters and police in central Paris on Saturday on the sidelines of a largely peaceful demonstration, during the fifth straight weekend of protests by the "yellow vest" movement.
Riot police fired small amounts of tear gas to disperse groups of protesters who headed down the side streets off the French capital's famed Champs-Elysees boulevard, some with traffic still flowing.
About 8,000 police and 14 armored vehicles were deployed in Paris for the demonstration, after similar protests in recent weekends turned violent, with protesters smashing and looting stores and setting up burning barricades in the streets.
Saturday's protest was far calmer in the morning, with riot police blocking off groups of protesters who attempted to disperse in side streets. At least 21 people were detained in Paris before the protests began, police said.
Some protesters voiced anger at being restricted to a few blocks by police.
"We're surrounded by CRS," said protester Lionel Toussaint, 53, who works in the heritage industry, referring to riot police. "I'm not armed. I only have Kleenex."
The "yellow vest" movement, which takes its name from the fluorescent safety vests French motorists must all have in their vehicles, emerged in mid-November as a protest against fuel tax increases. It soon morphed into an expression of rage about the high cost of living in France and a sense that President Emanuel Macron's government is detached from the everyday struggles of workers.
Without any clear form or leadership, the movement has attracted a wide range of disgruntled people across the political spectrum, including some violent militants.
"Respect my existence or expect my resistance," read one banner held aloft by protesters who converged on the Champs-Elysees.
Pierre Lamy, a 27-year-old industrial worker wearing a yellow vest and with a French flag draped over his shoulders, said the protests had long stopped being about the fuel tax and had turned into a movement for economic justice.
"We're here to represent all our friends and members of our family who can't come to protest, or because they're scared," he said as he walked to the demonstration with three friends. "Everything's coming up now. We're being bled dry."
Max Werle, a 56-year-old father of nine, said the protests were his first-ever demonstrations.
"I'm here for my children," he said, adding that his daughter had given birth in a fire truck on Monday because the local hospital in Loiret outside Paris had closed years ago.
The office administrator said the protesters were there "to defend our cause. ... It's not a left and right thing."
"Yellow vest" protests were also being held in other parts of France, with no violent incidents reported by mid-day.
On Friday, Macron called for calm during the demonstrations, and the French government reiterated the call online for demonstrators to remain peaceful.
"Protesting is a right. So let's know how to exercise it," the government tweeted from its official account, with a 34-second video which begins with images of historic French protests and recent footage of "yellow vest" protesters rallying peacefully before turning to violence.
"Protesting is not smashing. Protesting is not smashing our heritage. Protesting is not smashing our businesses. ... Protesting is not smashing our republic," the video says.
Macron acknowledged in a speech earlier this week that he is partially responsible for the anger displayed during the protests, and has announced measures aimed at improving workers' spending power. He has so far refused to reinstate a wealth tax that was lifted to spur investment in France.
But on the streets of Paris, some protesters were saying the president still didn't understand them.
"I think that Macron isn't in touch with what the yellow vests want. I think the yellow vests need to continue speaking out and the problem is that in the countryside," said Julie Verrier, a protester from Picardie in Normandy in northern France who had been participating in protests there for the past three weeks and had travelled to Paris for Saturday's demonstration.
"Local city halls are closed so we can't go there to express and write our complaints and our wishes," she said. "So coming here is the only way we have to say that French people need to be heard."