He started his career with Gillingham, for whom he made his Football League debut at the age of 16, and made over 190 appearances for the Kent-based club. He had loans at Peterborough United and Wrexham during the 2008–09 season and joined Brighton & Hove Albion in 2009. After a successful season at Brighton he transferred to Norwich City in 2010, before moving back to the South Coast club in 2012.
A tough-tackling midfielder, Crofts represented Wales, where one of his grandparents was born, at under-19 and under-21 level and won his first senior cap in 2005. In 2008, he won his 12th cap, breaking the record for the most international caps received by a Gillingham player.
Crofts was born in Chatham, Kent, and began playing competitive football at the age of six for a club in nearby Rainham. Between the ages of 10 and 15 he attended weekly training sessions organised by Premier League club Chelsea. He also tried out on two occasions for the English Schools Football Association's national schoolboy team, but was unsuccessful.
In September 2000, Crofts joined Gillingham as a trainee and was a regular in the club's youth and reserve teams during the 2000–01 season. At the end of the season, shortly before his 17th birthday, he was a surprise inclusion in the first team squad for a match at home to Watford, and made his Football League debut as a late substitute, replacing Marlon King. The following season, he suffered a broken leg during a reserve team match and missed several months of the season. Although he returned to action in early 2002, his next appearance for the first team did not come until October, when he came on as a substitute in a League Cup match against Stockport County. This was to be his only senior appearance of the 2002–03 season. He finally secured a regular first team place towards the end of the following season, featuring regularly during March and April 2004.
Crofts was a first team regular in the 2004–05 season, making 27 Football League appearances, and scoring his first senior goal for the club in a defeat to Brighton & Hove Albion on 26 December. In January 2005, he signed a new contract designed to keep him at the club until 2009. He was omitted from the team for most of March and April, but was recalled for the last match of the season, in which a draw with Nottingham Forest led to the "Gills" being relegated from the Football League Championship, the second tier of English football, to Football League One, the third tier. In the 2005–06 season, he made the most appearances of any player in the Gillingham squad, missing only one of the team's 46 matches in League One. Although the team struggled in the league, finishing in the lower half of the table, they defeated Premier League team Portsmouth in the League Cup, with Crofts scoring the winning goal. The following season, he again made over 40 appearances and also scored eight goals, his best total for an individual season, but Gillingham again finished the season in the bottom half of the table. He made his 100th start for the club on 18 December 2006 in a match against Bournemouth, and marked the occasion with a goal. At the end of the season, he won four awards at the club's Player of the Year event and was dubbed Mr Gillingham by then-manager Ronnie Jepson. He took over as team captain in the 2007–08 season, but it was an unsuccessful season for the team, who were relegated from League One. The following October he was stripped of the captaincy, which was instead given to Barry Fuller. Manager Mark Stimson stated that he felt that the captaincy might have been too much of a burden for Crofts, and had a negative effect on his form. Soon afterwards, the club made Crofts available for transfer.
In November 2008, he joined Peterborough United on loan. Shortly after returning to Gillingham the following January, he went on a second loan period, this time to Wrexham until the end of the season. He made his debut on the same day in a 2–1 defeat to Burton Albion. Upon his return to Gillingham from his loan spell, he was released from his contract.
On 29 June 2009, Crofts agreed to join League One club Brighton & Hove Albion on a two-year contract. He made his debut for Brighton during the 1–0 home defeat to Walsall on 8 August 2009 and scored his first goal for Brighton during the 2–2 draw at Yeovil Town on 10 October 2009. Crofts was given the role of captain by new manager Gus Poyet before the 3–1 away victory at Southampton. Crofts was later confirmed as permanent captain at the beginning of January 2010.
On 21 May 2010, Norwich City announced the acquisition of Crofts from Brighton, for an undisclosed fee, believed to be in the region of £300,000. He became the club's first signing of the summer transfer window, signing a three-year deal at Carrow Road. On 6 August 2010, he scored a goal on his debut against Watford. He subsequently gained promotion to the Premier League with the "Canaries" in his first season at the club. He initially kept his place as a regular starter for Norwich in the top tier, but in the second half of the 2011–12 season he gradually fell out of favour at the club.
Crofts was transferred back to Brighton in August 2012.
On 19 March 2016, Crofts re-joined Gillingham on loan until the end of the season.
On 22 July 2016, Crofts signed a one-year contract with Charlton Athletic. He scored his first goal for Charlton in a 1–1 draw with Southend United on 31 December 2016. On 1 September 2017 the club announced that he had ended his contract by mutual agreement.
Crofts signed for Scunthorpe United on 31 August 2017, signing a one-year contract with the North Lincolnshire-based club.
As one of his grandparents was born in Wales he was eligible to play for the Welsh national team, and after representing the country at under-19 and under-21 level he won his first senior cap, an award given to a player representing his national team, in 2005. In 2008, he won his twelfth cap, breaking the record for the most international caps received by a Gillingham player. Crofts was selected for the Welsh national under-19 team in 2002, qualifying due to having a Welsh grandparent. He made his first appearance for the team in the Milk Cup tournament in Northern Ireland, but was forced to return home after suffering an ankle injury in the Welsh team's first match. In total he made eight appearances at under-19 level, including appearing in a second Milk Cup in 2003.
After moving up to the under-21 level Crofts was selected for the national under-21 team for the first time for a match against Germany in February 2005. He went on to gain 12 caps at this level, scoring one goal.
He made his debut for the Welsh national team against Azerbaijan on 12 October 2005, coming on as a substitute for Carl Fletcher. At the end of the 2005–06 season, as part of manager John Toshack's policy of introducing young players to the team, Crofts gained two further caps, both as a substitute, against Paraguay and Trinidad & Tobago, and also played in an unofficial international match against a Basque Country XI.
He was included in the starting line-up for an international for the first time in August 2007 when he played the full 90 minutes of a match against Bulgaria, but was back on the substitutes' bench for the UEFA Euro 2008 qualifying match against Germany the following month. He became established as a regular member of the Welsh squad during the UEFA Euro 2012 qualifying tournament.As of match played 23 September 2017
Score and results list Wales U21's goal tally first.
Crofts is a fan of Chelsea and at one time shared a flat with the club's future captain John Terry. During his time as captain of Gillingham, he was involved with a number of charity events, including acting as a celebrity waiter at a Gillingham pub and presenting a signed shirt to a brain damaged teenage fan. In January 2005, he dedicated a match-winning goal to his grandmother Lily, who had died several months earlier.