Florida has tightened its gun control laws in the wake of the Valentine's Day massacre that left 17 people dead.
The school safety bill, which has been signed by the state's governor, raises the minimum age to buy rifles from 18 to 21 and bans bump stocks that allow guns to mimic fully automatic fire.
It also creates a "guardian" programme that enables teachers and other school employees to carry handguns – a proposal President Donald Trump has backed.
Florida Governor Rick Scott signed the $400m bill flanked by family members of students who were killed in the mass shooting at Marjory Stoneman Douglas High School in Parkland.
He said: "It's an example to the entire country that government can and has, moved fast."
But Governor Scott said he was still "not persuaded" about the guardian programme.
"I'm glad, however, the plan in this bill is not mandatory," the Republican added.
"If counties don't want to do this, they can simply say no."
Other measures in the bill include extending a three-day waiting period for handgun purchases to include long guns and setting up an anonymous tip line where people can report threats.
The bill does not include a ban on assault-style weapons, such as the one used during the Florida massacre.
Many survivors of the school shooting had called for the bill – which narrowly passed the House and Senate – to go further.
Student Chris Grady said: "Obviously, this is what we've been fighting for.
"It's nowhere near the long-term solution. It's a baby step, but a huge step at the same time.
"Florida hasn't passed any legislation like this in God knows how long. It's nowhere near what we want, but it's progress and uplifting to see."
Governor Scott told the students: "You helped change our state. You made a difference. You should be proud."
More from Florida
The bill marks Governor Scott's break with the National Rifle Association.
The group's powerful lobbyist Marion Hammer called the bill "a display of bullying and coercion" that would violate Second Amendment rights and punish law-abiding citizens.
[contf] [contfnew]
Sky News
[contfnewc] [contfnewc]