SkateSpots/src/lib/glossary.ts
shakespeare.diy 5d07524751 Glossary: drop difficulty levels, expand & correct tricks
- Removed difficulty categorization entirely (type, badges, styles) —
  cleaner and no arbitrary skill labels.
- Added many requested/missing tricks with proper research and correct
  alt-names, including:
  • Rotations category: FS/BS 180, FS/BS 360, half-cab, full cab
    (caballerial), fakie 180s.
  • Flip tricks: backside flip, frontside flip, FS/BS heelflip, double
    heelflip, 360 hardflip, 360 pressure flip.
  • Grinds: feeble grind now notes "Grosso grind" aka; added Willy/
    Barley, pole jam; inventor credits (Suski, Losi, etc.).
  • Fundamentals: nose ollie/north, one-foot, no-foot/nothing, nose
    manual, caveman, tic-tac.
  • Shoves: nollie shove, ghetto bird.
  • Grabs: tailbone, airwalk. Stance/slang: pop, line, kook, sticker
    slap, etc. Hardware: durometer.
- Updated the local glossary answerer index to cover all new aka names
  (e.g. "grosso grind", "half cab", "north ollie" now answer locally).

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-07-29 23:08:37 +07:00

447 lines
30 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Skateboarding trick & terminology glossary.
* ─────────────────────────────────────────────────────────────────────────────
* A curated, categorized reference of skate tricks, transitions, freestyle,
* stance/movement terms, and hardware — with common alternate names (tricks and
* gear pick up regional / era-specific / pro-named nicknames).
*
* Static content — no network, no Nostr. Purely a learning reference for the
* community. Keep entries concise and skater-accurate.
*/
export interface Trick {
/** Canonical name. */
name: string;
/** Other names the same trick / term is known by. */
aka?: string[];
/** Short, skater-accurate description. */
desc: string;
}
export interface TrickCategory {
id: string;
/** Display title. */
title: string;
/** One-line description of the category. */
blurb: string;
/** Emoji used as a lightweight category glyph. */
glyph: string;
tricks: Trick[];
}
export const GLOSSARY: TrickCategory[] = [
{
id: 'fundamentals',
title: 'Fundamentals',
blurb: 'The building blocks every trick is stacked on.',
glyph: '🛹',
tricks: [
{ name: 'Ollie', desc: 'The foundational jump — pop the tail, slide the front foot forward, and level the board in the air with no hands. The basis for almost every street trick.' },
{ name: 'Nollie', aka: ['Nose Ollie'], desc: 'An ollie popped off the nose instead of the tail while riding forward.' },
{ name: 'Fakie Ollie', desc: 'An ollie performed while rolling backwards in your normal stance.' },
{ name: 'Switch Ollie', desc: 'An ollie done in your opposite (switch) stance.' },
{ name: 'Nollie Ollie', aka: ['North', 'North Ollie', 'Wrong-Footed Ollie'], desc: 'Popping off the nose while rolling forward. Old-timers also called a mistimed front-foot pop a "wrong-footed" ollie.' },
{ name: 'One Foot Ollie', aka: ['One-Foot Ollie'], desc: 'An ollie where the front foot kicks off and forward in the air, then returns before landing.' },
{ name: 'No Foot Ollie', aka: ['Nothing', 'Airwalk (grabless)'], desc: 'An ollie where both feet leave the board mid-air, then land back on it.' },
{ name: 'Manual', aka: ['Wheelie'], desc: 'Balance rolling on the back two wheels; a nose manual uses the front two.' },
{ name: 'Nose Manual', desc: 'A manual balanced on the front two wheels, tail in the air.' },
{ name: 'Powerslide', desc: 'Turn the board perpendicular and slide the wheels to scrub speed.' },
{ name: 'Kickturn', desc: 'Pivot on the back wheels to change direction — the first turn every skater learns.' },
{ name: 'Tic-Tac', aka: ['Tick-Tack'], desc: 'Small back-and-forth kickturns of the nose to gain momentum without pushing.' },
{ name: 'Wallie', desc: 'An ollie off a wall or vertical surface, riding away.' },
{ name: 'Boneless', desc: 'Grab the board, plant the front foot on the ground, and jump back on. An ’80s staple.' },
{ name: 'No Comply', aka: ['No-Comply'], desc: 'Front foot steps off, back foot pops the tail so the board hops/spins, then reload. Popularized by Ray Barbee.' },
{ name: 'Hippie Jump', desc: 'Jump straight up while the board rolls under an obstacle, landing back on it.' },
{ name: 'Acid Drop', desc: 'Drop into a ramp or off a ledge from the coping without pumping — just step on and go.' },
{ name: 'Bomb Drop', desc: 'Jump from a height and land directly onto the rolling board.' },
{ name: 'Caveman', desc: 'Hold the board in your hands, jump, and drop it under your feet to ride away.' },
],
},
{
id: 'rotations',
title: 'Rotations (180s / 360s)',
blurb: 'Ollie-based body-and-board spins with no flip.',
glyph: '🧭',
tricks: [
{ name: 'Frontside 180', aka: ['FS 180', 'Frontside Ollie 180'], desc: 'An ollie rotating your body and board 180° frontside (chest turning to face forward/out).' },
{ name: 'Backside 180', aka: ['BS 180'], desc: 'An ollie rotating 180° backside (turning your back to the direction of travel).' },
{ name: 'Frontside 360', aka: ['FS 360'], desc: 'A full 360° frontside ollie rotation.' },
{ name: 'Backside 360', aka: ['BS 360', '360 Backside'], desc: 'A full 360° backside ollie rotation.' },
{ name: 'Fakie Frontside 180', aka: ['Half-Cab'], desc: 'A fakie frontside 180 — half of a full cab. Named after Steve Caballero.' },
{ name: 'Fakie Backside 180', aka: ['Fakie BS 180'], desc: 'A 180° backside rotation done while rolling fakie.' },
{ name: 'Caballerial', aka: ['Full Cab', 'Cab', '360 Fakie'], desc: 'A fakie 360° ollie with no grab or flip. Named after Steve Caballero.' },
{ name: '540 (flatground)', desc: 'A flatground one-and-a-half rotation — advanced spin control.' },
],
},
{
id: 'flips',
title: 'Flip Tricks',
blurb: 'Tricks where the board rotates around its long axis (and then some).',
glyph: '🌀',
tricks: [
{ name: 'Kickflip', aka: ['Magic Flip (original name)'], desc: 'Ollie with a flick off the toe side so the board flips one full rotation along its length.' },
{ name: 'Heelflip', desc: 'Like a kickflip but flicked off the heel, flipping the opposite direction.' },
{ name: 'Frontside Flip', aka: ['FS Flip'], desc: 'A frontside 180 combined with a kickflip.' },
{ name: 'Backside Flip', aka: ['BS Flip'], desc: 'A backside 180 combined with a kickflip.' },
{ name: 'Frontside Heelflip', aka: ['FS Heel'], desc: 'A frontside 180 combined with a heelflip.' },
{ name: 'Backside Heelflip', aka: ['BS Heel'], desc: 'A backside 180 combined with a heelflip.' },
{ name: 'Varial Kickflip', desc: 'A kickflip combined with a backside pop shove-it.' },
{ name: 'Varial Heelflip', desc: 'A heelflip combined with a frontside pop shove-it.' },
{ name: '360 Flip', aka: ['Tre Flip', '360 Kickflip', 'Three Flip'], desc: 'A kickflip combined with a 360° backside pop shove-it — a signature street trick.' },
{ name: '360 Hardflip', desc: 'A hardflip combined with a 360° shove-it rotation.' },
{ name: 'Hardflip', desc: 'A frontside pop shove-it combined with a kickflip; the board rotates vertically between the legs.' },
{ name: 'Inward Heelflip', desc: 'A backside pop shove-it combined with a heelflip.' },
{ name: 'Laser Flip', desc: 'A frontside 360 pop shove-it combined with a heelflip — the mirror of a tre flip.' },
{ name: 'Double Kickflip', desc: 'A kickflip that rotates twice before you catch it.' },
{ name: 'Triple Kickflip', desc: 'Three full kickflip rotations before landing.' },
{ name: 'Double Heelflip', desc: 'A heelflip rotating twice before you land.' },
{ name: 'Impossible', desc: 'The board wraps vertically around the back foot in a scooping motion. Invented by Rodney Mullen.' },
{ name: 'Pressure Flip', desc: 'Flip powered by back-foot pressure on the heel side of the tail, usually with a shove-it.' },
{ name: 'Hospital Flip', aka: ['Half Flip'], desc: 'A half kickflip caught with the front foot, then flipped back over before landing.' },
{ name: 'Dolphin Flip', aka: ['Forward Flip'], desc: 'A pressure-flip variant where the board flips forward end-over-end in a vertical arc.' },
{ name: 'Gazelle Flip', desc: 'A 360 flip combined with a 360° body rotation — a huge, flowing trick.' },
{ name: '360 Pressure Flip', aka: ['360 P-Flip'], desc: 'A pressure flip carrying a full 360° board spin.' },
],
},
{
id: 'shoves',
title: 'Shove-its & Spins',
blurb: 'Board and body rotations without a flip.',
glyph: '🔄',
tricks: [
{ name: 'Pop Shove-it', aka: ['Pop Shuv', 'Shuvit'], desc: 'Ollie with the board spinning 180° flat under your feet.' },
{ name: 'Frontside Shove-it', desc: 'A shove-it where the board spins frontside (toward your heels).' },
{ name: 'Backside Shove-it', desc: 'A shove-it where the board spins backside (toward your toes).' },
{ name: '360 Shove-it', aka: ['360 Shuv', 'Tre Shuv'], desc: 'A shove-it that spins the board a full 360° flat.' },
{ name: '540 Shove-it', desc: 'A shove-it spinning the board one-and-a-half rotations (540°).' },
{ name: 'Nollie Shove-it', desc: 'A shove-it popped off the nose while rolling forward.' },
{ name: 'Bigspin', desc: 'A 360° board shove-it combined with a 180° body varial, same direction.' },
{ name: 'Bigger Spin', desc: 'A 540° board spin with a 180° body varial.' },
{ name: 'Bigflip', desc: 'A bigspin with a kickflip added.' },
{ name: 'Bigger Flip', desc: 'A bigger spin (540°) with a kickflip.' },
{ name: 'Ghetto Bird', aka: ['Hardflip Late Backside 180'], desc: 'A nollie hardflip with a late backside 180. Popularized by Kareem Campbell.' },
],
},
{
id: 'grinds',
title: 'Grinds',
blurb: 'Sliding along an edge on the trucks.',
glyph: '⚙️',
tricks: [
{ name: '50-50', aka: ['Fifty-Fifty'], desc: 'Grind on both trucks equally along a rail or ledge.' },
{ name: '5-0', aka: ['Five-O'], desc: 'Grind on the back truck only, nose up (like a manual on an edge).' },
{ name: 'Nosegrind', desc: 'Grind on the front truck only, tail up.' },
{ name: 'Crooked Grind', aka: ['K-Grind', 'Crooks'], desc: 'A nosegrind with the tail kicked out to one side — part nose manual, part slide.' },
{ name: 'Smith Grind', desc: 'Back truck grinds on top with the front dipping below the edge, nose pointed down.' },
{ name: 'Feeble Grind', aka: ['Grosso Grind'], desc: 'Back truck on top with the front truck hanging over the far side, nose down. Sometimes called a Grosso grind after Jeff Grosso.' },
{ name: 'Salad Grind', desc: 'The frontside cousin of a feeble grind — back truck grinding with the front over the near side.' },
{ name: 'Suski Grind', desc: 'A backside 5-0 with the front truck hanging over the opposite side. Named after Aaron Suski.' },
{ name: 'Willy Grind', aka: ['Barley Grind'], desc: 'A frontside 5-0 with the front truck hanging over the edge. Named after Mike Vallely / Donny Barley.' },
{ name: 'Overcrook', aka: ['Overcrooked'], desc: 'A frontside crooked grind, nose overhanging the far side of the rail.' },
{ name: 'Losi Grind', desc: 'A frontside nosegrind with the tail hanging over the edge. Named after Allen Losi.' },
{ name: 'Hurricane Grind', desc: 'Frontside 180 into a backwards feeble/smith grind, then 180 out.' },
{ name: 'Pole Jam', desc: 'Ride up an angled pole or bar and grind/ollie off it.' },
],
},
{
id: 'slides',
title: 'Slides',
blurb: 'Sliding on the deck instead of the trucks.',
glyph: '➖',
tricks: [
{ name: 'Boardslide', desc: 'Slide with the middle of the deck perpendicular across the edge.' },
{ name: 'Lipslide', desc: 'Like a boardslide but the tail swings over the obstacle first to get into it.' },
{ name: 'Noseslide', desc: 'Slide on the nose of the board along a ledge.' },
{ name: 'Tailslide', desc: 'Slide on the tail of the board along a ledge.' },
{ name: 'Bluntslide', desc: 'Back wheels up on the ledge with the tail on top, sliding on the tail’s edge.' },
{ name: 'Nosebluntslide', aka: ['Noseblunt'], desc: 'The nose-end blunt slide — front wheels up on the ledge, perpendicular.' },
{ name: 'Darkslide', desc: 'Slide upside-down on the grip tape — a Rodney Mullen invention.' },
{ name: 'Primo Slide', desc: 'Board on its side, sliding on the edge (like a moving rail stand).' },
{ name: 'Casper Slide', desc: 'Board upside down, one foot on the tail and one under the board, sliding.' },
],
},
{
id: 'grabs',
title: 'Grabs',
blurb: 'Airborne tricks where a hand grabs the board.',
glyph: '✋',
tricks: [
{ name: 'Indy', aka: ['Indy Grab'], desc: 'Trailing (back) hand grabs the toe edge between the feet.' },
{ name: 'Melon', aka: ['Melancholie'], desc: 'Leading (front) hand grabs the heel edge between the feet.' },
{ name: 'Mute', aka: ['Mute Grab'], desc: 'Leading hand grabs the toe edge; named after deaf skater Chris Weddle.' },
{ name: 'Stalefish', desc: 'Trailing hand grabs the heel edge behind the back leg.' },
{ name: 'Method', aka: ['Method Air'], desc: 'A melon grab with the board pulled up behind the back and legs kicked out — the classic stylish air.' },
{ name: 'Japan Air', desc: 'A melon grab pulled up behind the back, tweaking the board up and forward.' },
{ name: 'Madonna', desc: 'Front hand grabs the heel side near the nose with the back leg kicked straight down.' },
{ name: 'Slob Air', desc: 'Front hand grabs the toe side, usually with a frontside rotation.' },
{ name: 'Nosegrab', desc: 'Grab the nose of the board in the air.' },
{ name: 'Tailgrab', desc: 'Grab the tail of the board in the air.' },
{ name: 'Seatbelt', aka: ['Seatbelt Grab'], desc: 'Front hand reaches across the body to grab the tail.' },
{ name: 'Roastbeef', aka: ['Roastbeef Grab'], desc: 'Back hand reaches through the legs to grab the heel side.' },
{ name: 'Benihana', desc: 'A tail grab with the back foot kicked off the board mid-air.' },
{ name: 'Crossbone', desc: 'A melon grab with the front leg boned out to the side.' },
{ name: 'Nosebone', desc: 'A nose grab with the front leg boned out straight.' },
{ name: 'Tailbone', desc: 'A tail grab with the back leg boned out straight.' },
{ name: 'Lien Air', desc: 'Front hand grabs the heel side during a frontside air — "Neil" (Blender) spelled backwards.' },
{ name: 'Judo Air', desc: 'Front hand grabs the nose while the front leg kicks out forward.' },
{ name: 'Cannonball', desc: 'Both hands grab nose and tail with the knees tucked.' },
{ name: 'Christ Air', desc: 'Arms out like a crucifix with no grab — pure ’80s vert flair.' },
{ name: 'Airwalk', desc: 'Grab the nose and split the legs apart forward and back like walking on air.' },
],
},
{
id: 'airs',
title: 'Airs & Spins (Vert)',
blurb: 'Big air and rotation tricks off ramps, bowls, and quarterpipes.',
glyph: '🚀',
tricks: [
{ name: 'Backside Air', desc: 'Any aerial rotating backside (facing away from the ramp on approach), usually grabbed.' },
{ name: 'Frontside Air', desc: 'Any aerial rotating frontside (facing the ramp on approach).' },
{ name: 'Alley-Oop', desc: 'Spinning opposite the direction you’re traveling out of the transition.' },
{ name: '540', aka: ['Five-Forty'], desc: 'One-and-a-half rotations in the air.' },
{ name: 'McTwist', desc: 'A 540° backside spin with a mute grab, invented by Mike McGill.' },
{ name: '720', desc: 'Two full rotations in the air.' },
{ name: '900', desc: 'Two-and-a-half rotations — famously landed by Tony Hawk in 1999.' },
{ name: '1080', aka: ['Ten Eighty'], desc: 'Three full rotations — first landed by Tom Schaar in 2012.' },
],
},
{
id: 'lip',
title: 'Lip Tricks',
blurb: 'Tricks performed on the coping / lip of a ramp or bowl.',
glyph: '👄',
tricks: [
{ name: 'Rock to Fakie', desc: 'Ride up, rock the front truck over the coping, tap, then roll back in fakie.' },
{ name: 'Rock n Roll', desc: 'Rock the board over the coping then kickturn 180° to roll back in forward.' },
{ name: 'Axle Stall', aka: ['50-50 Stall'], desc: 'Stall on both trucks on the coping, then drop back in.' },
{ name: 'Feeble Stall', desc: 'A feeble grind held as a stall on the coping.' },
{ name: 'Smith Stall', desc: 'A smith grind held as a stall on the coping before dropping back in.' },
{ name: 'Blunt to Fakie', desc: 'Stall in a blunt position on the coping then come back in fakie.' },
{ name: 'Disaster', desc: 'Ollie over the coping so the middle of the board rests on the lip, leaning forward.' },
{ name: 'Slash Grind', desc: 'A quick grind across the coping while carving through a turn.' },
{ name: 'Fakie Rock', desc: 'Roll up fakie, rock the tail-end over the coping, then come back in.' },
],
},
{
id: 'stalls',
title: 'Stalls',
blurb: 'Pausing balanced on an obstacle before re-entering.',
glyph: '⏸️',
tricks: [
{ name: 'Nose Stall', desc: 'Balance stalled on the nose against a ledge or coping.' },
{ name: 'Tail Stall', desc: 'Balance stalled on the tail on the coping.' },
{ name: 'Pivot Stall', desc: 'Stall balanced on the back truck and pivot to re-enter.' },
{ name: 'Nosepick', desc: 'Stall on the nose/front truck with the tail hanging in the air, often on a quarterpipe.' },
{ name: 'Tailblock', desc: 'A handplant-style stall balanced on the tail against the coping.' },
{ name: 'Blunt Stall', desc: 'Stall with the tail on the coping and the board perpendicular, wheels above the lip.' },
],
},
{
id: 'handplants',
title: 'Handplants & Inverts',
blurb: 'One-hand-on-the-coping inverted tricks — old-school flair.',
glyph: '🤸',
tricks: [
{ name: 'Invert', aka: ['Handplant', 'One-Hand Plant'], desc: 'Plant one hand on the coping and balance inverted with the board grabbed.' },
{ name: 'Eggplant', desc: 'A frontside invert grabbing toe-side with the board pulled behind the back.' },
{ name: 'Andrecht', desc: 'A backside invert with a 540° spin out; invented by Dave Andrecht.' },
{ name: 'Sad Plant', desc: 'A handplant with the front leg boned straight and the back leg tucked.' },
{ name: 'Gymnast Plant', desc: 'An invert with both hands on the coping and legs split.' },
{ name: 'Ho-Ho', aka: ['Two-Hand Plant'], desc: 'A handstand-style invert balanced on both hands.' },
{ name: 'Beanplant', aka: ['Bean Plant'], desc: 'A frontside handplant with the back hand grabbing the nose; invented by Kevin Staab.' },
{ name: 'Fastplant', desc: 'A one-footed takeoff using a hand on the platform to launch.' },
{ name: 'Layback Air', desc: 'One hand on the deck behind you, leaning into the transition, then launching into an air.' },
{ name: 'Miller Flip', desc: 'A frontside handplant flipping over onto your back on the deck; invented by Darrell Miller.' },
],
},
{
id: 'boneless',
title: 'Boneless & Foot-Plants',
blurb: 'Grab-and-jump tricks planting a foot on the ground.',
glyph: '🦴',
tricks: [
{ name: 'Boneless', desc: 'Grab the board, plant the front foot on the ground, and jump back on.' },
{ name: 'Bean Plant', desc: 'A boneless planting the back foot and grabbing with the leading hand.' },
{ name: 'No Comply', desc: 'Step the front foot off, pop the tail so the board spins/hops, then reload.' },
{ name: 'Nose Bonk', desc: 'Tap the nose off an obstacle mid-line for style.' },
{ name: 'Ho-ho Plant', desc: 'A foot-plant balanced into a two-hand handstand.' },
],
},
{
id: 'freestyle',
title: 'Freestyle & Flatground',
blurb: 'Balance and pivot tricks from skate’s freestyle roots.',
glyph: '🎪',
tricks: [
{ name: 'Casper', aka: ['Casper Stand'], desc: 'Board upside down, front foot under the board, back foot on the tail.' },
{ name: 'Casper Flip', desc: 'Flipping the board from a casper position back to wheels-down.' },
{ name: 'Anti-Casper', desc: 'Board upside down with the back foot under and front foot on the nose.' },
{ name: 'Primo', aka: ['Rail Stand', 'Primo Stand'], desc: 'Board balanced on its side (rail); stand on the edge.' },
{ name: 'Rail Flip', desc: 'Flip the board from a rail stand back to normal.' },
{ name: 'Pogo', desc: 'Balance on the tail with the board vertical, holding the nose, and bounce.' },
{ name: 'Truckstand', aka: ['Truck Stand'], desc: 'Handstand-style balance on one truck with the board vertical.' },
{ name: 'Handstand', aka: ['Handstand Fingerflip'], desc: 'A handstand on the board, often flipped out — a freestyle staple.' },
{ name: 'Fingerflip', desc: 'Flip the board with your hand while your feet are off it.' },
{ name: 'Old School Kickflip', aka: ['Toe Flip'], desc: 'Flip the board outward off the toe side with the front foot — the pre-ollie kickflip.' },
{ name: 'Walk the Dog', desc: 'Step foot-over-foot on nose and tail to swivel the board forward.' },
{ name: 'Spacewalk', desc: 'A nose-up manual walked along by shifting weight side to side.' },
{ name: 'Daffy', desc: 'One foot on the nose of one board and one on the tail of another (or flexed mid-deck).' },
{ name: 'G-Turn', desc: 'A 360° spin held in a manual using small kickturns.' },
{ name: 'Coconut Wheelie', desc: 'A two-footed nose or tail wheelie balanced with both feet together.' },
],
},
{
id: 'transition',
title: 'Transition & Vert Terms',
blurb: 'Ramps, bowls, coping — the language of transition skating.',
glyph: '🌊',
tricks: [
{ name: 'Drop In', desc: 'Start a run by setting the tail on the coping and leaning forward down the transition.' },
{ name: 'Carve', desc: 'Turn by leaning into the transition, holding an arc.' },
{ name: 'Pumping', desc: 'Generate speed by compressing and extending through the transitions instead of pushing.' },
{ name: 'Transfer', desc: 'Move from one ramp or bowl section to another, often over a channel or spine.' },
{ name: 'Spine Transfer', desc: 'Transfer over the spine — the shared coping of two back-to-back ramps.' },
{ name: 'Channel Gap', desc: 'Jump the flat gap (channel) cut into the platform between two quarterpipes.' },
{ name: 'Roll In', desc: 'A sloped platform that lets you roll into a ramp without dropping in.' },
{ name: 'Coping', desc: 'The metal pipe on the edge of ramps and pools that you grind and stall on.' },
{ name: 'Transition', aka: ['Tranny'], desc: 'The curved part of a ramp between the flat bottom and the vertical.' },
{ name: 'Vert', desc: 'The vertical section at the top of a big ramp.' },
{ name: 'Halfpipe', desc: 'Two quarterpipes facing each other with a flat bottom between.' },
{ name: 'Quarterpipe', desc: 'A single ramp with a 90° transition.' },
{ name: 'Mini Ramp', desc: 'A smaller halfpipe, usually 3–5 ft, with no vertical section.' },
{ name: 'Bowl', aka: ['Pool'], desc: 'A concave concrete structure with rounded corners and coping.' },
{ name: 'Snake Run', desc: 'A winding concrete course of banks and transitions.' },
{ name: 'Extension', desc: 'A section of a ramp wall built higher than the rest.' },
{ name: 'Hip', desc: 'Where two ramp banks meet at an angle — used to launch and transfer.' },
],
},
{
id: 'stance',
title: 'Stance & Slang',
blurb: 'How you stand, roll, and talk on the board.',
glyph: '🗣️',
tricks: [
{ name: 'Regular', desc: 'Riding with the left foot forward.' },
{ name: 'Goofy', desc: 'Riding with the right foot forward.' },
{ name: 'Switch', aka: ['Switchstance'], desc: 'Riding in your opposite (unnatural) stance.' },
{ name: 'Fakie', desc: 'Rolling backwards in your normal stance (tail leading).' },
{ name: 'Mongo', aka: ['Mongo-foot'], desc: 'Pushing with the front foot instead of the back — generally frowned upon stylistically.' },
{ name: 'Pushing', desc: 'Propelling yourself with one foot on the ground.' },
{ name: 'Bail', desc: 'Intentionally jumping off to avoid a bad landing.' },
{ name: 'Slam', desc: 'Falling hard, usually unexpectedly.' },
{ name: 'Sketchy', desc: 'A trick landed shakily or barely held together.' },
{ name: 'Bolts', aka: ['Landed Bolts'], desc: 'Landing perfectly with both feet over the truck bolts.' },
{ name: 'Steez', desc: 'Style + ease — doing tricks with effortless flair.' },
{ name: 'Pop', desc: 'The snap you get off the tail when it hits the ground.' },
{ name: 'Sticker Slap', desc: 'Slapping the tail against an obstacle for a satisfying tap.' },
{ name: 'Line', desc: 'A sequence of tricks strung together in one continuous roll.' },
{ name: 'Kook', desc: 'Slang for a clueless or poser skater.' },
],
},
{
id: 'hardware',
title: 'Hardware & Equipment',
blurb: 'The anatomy of a skateboard, from deck to bearings.',
glyph: '🔩',
tricks: [
{ name: 'Deck', desc: 'The wooden board itself, usually 7-ply maple.' },
{ name: 'Grip Tape', aka: ['Griptape'], desc: 'Sandpaper-like adhesive sheet on top of the deck for traction.' },
{ name: 'Trucks', desc: 'The T-shaped metal axles that attach the wheels to the deck and let you turn.' },
{ name: 'Baseplate', desc: 'The flat part of the truck that bolts to the deck.' },
{ name: 'Hanger', desc: 'The main body of the truck that holds the axle — what you grind on.' },
{ name: 'Kingpin', desc: 'The big bolt holding the truck together; sets how loose or tight it turns.' },
{ name: 'Bushings', desc: 'The urethane cushions in the truck that allow and control turning.' },
{ name: 'Pivot Cup', desc: 'The plastic cup in the baseplate where the hanger pivots.' },
{ name: 'Wheels', desc: 'Urethane wheels, measured in millimeters (typically 50–60mm) and durometer (hardness).' },
{ name: 'Bearings', desc: 'The metal rings inside the wheels that let them spin (often ABEC-rated).' },
{ name: 'Spacers', desc: 'Small metal cylinders between bearings to reduce friction and side load.' },
{ name: 'Speed Rings', aka: ['Washers'], desc: 'Small washers on the axle that reduce friction against the bearings.' },
{ name: 'Risers', aka: ['Riser Pads', 'Shock Pads'], desc: 'Pads between the deck and trucks to raise ride height and prevent wheel bite.' },
{ name: 'Hardware', aka: ['Mounting Bolts'], desc: 'The nuts and bolts that attach the trucks to the deck.' },
{ name: 'Nose', desc: 'The front of the deck — usually steeper and slightly wider than the tail.' },
{ name: 'Tail', desc: 'The back of the deck, used for popping tricks.' },
{ name: 'Concave', desc: 'The curved shape across the width of the deck that helps board control.' },
{ name: 'Kicktail', aka: ['Kick'], desc: 'The upturned nose and tail of the deck.' },
{ name: 'Wheelbase', desc: 'The distance between the two sets of truck mounting holes.' },
{ name: 'Durometer', desc: 'The hardness rating of wheels (e.g. 99a). Harder = faster/street, softer = grippier/cruising.' },
{ name: 'Wheel Bite', desc: 'When a wheel touches the deck during a turn, causing a sudden stop.' },
{ name: 'Razor Tail', desc: 'A tail worn to a sharp edge from dragging on the ground.' },
{ name: 'Pressure Crack', desc: 'A stress crack in the deck near the truck mounting holes.' },
],
},
];
/** Total entry count across all categories (for headers/stats). */
export const TOTAL_TRICKS = GLOSSARY.reduce((sum, c) => sum + c.tricks.length, 0);
/** Flat, searchable list joining name + aka + description + category. */
export interface FlatTrick extends Trick {
categoryId: string;
categoryTitle: string;
categoryGlyph: string;
}
export const ALL_TRICKS: FlatTrick[] = GLOSSARY.flatMap((cat) =>
cat.tricks.map((t) => ({
...t,
categoryId: cat.id,
categoryTitle: cat.title,
categoryGlyph: cat.glyph,
})),
);
/** Case-insensitive search across name, aka, and description. */
export function searchTricks(query: string): FlatTrick[] {
const q = query.trim().toLowerCase();
if (!q) return ALL_TRICKS;
return ALL_TRICKS.filter((t) => {
if (t.name.toLowerCase().includes(q)) return true;
if (t.desc.toLowerCase().includes(q)) return true;
if (t.aka?.some((a) => a.toLowerCase().includes(q))) return true;
return false;
});
}
// ─── Local knowledge answerer (no API needed) ────────────────────────────────
/** Normalize a name/aka for matching: lowercase, strip punctuation & spaces. */
function norm(s: string): string {
return s.toLowerCase().replace(/[^a-z0-9]/g, '');
}
/** Pre-computed lookup of every trick by its normalized name + aka names. */
const TRICK_INDEX: Array<{ key: string; trick: FlatTrick }> = ALL_TRICKS.flatMap((t) => {
const keys = [t.name, ...(t.aka ?? [])].map(norm).filter(Boolean);
return keys.map((key) => ({ key, trick: t }));
}).sort((a, b) => b.key.length - a.key.length); // longest (most specific) first
/**
* Try to answer a trick / terminology question directly from the glossary,
* with NO network call. Returns a formatted answer string, or null if the
* question doesn't clearly reference a known trick.
*
* Handles phrasings like:
* "what is a feeble grind" · "how do i do a kickflip"
* "grosso grind" · "explain the tre flip"
*/
export function answerFromGlossary(question: string): string | null {
const nq = norm(question);
if (!nq) return null;
// Find the most specific trick whose name/aka appears in the question.
const hit = TRICK_INDEX.find(({ key }) => key.length >= 3 && nq.includes(key));
if (!hit) return null;
const t = hit.trick;
const akaLine = t.aka && t.aka.length ? `\n_Also known as: ${t.aka.join(', ')}._` : '';
const isHowTo = /\bhow\b|do a|do the|land|learn/i.test(question);
const lead = isHowTo
? `Here's the breakdown on the **${t.name}** 🛹`
: `**${t.name}** — ${t.categoryGlyph} ${t.categoryTitle}`;
const howToTail = isHowTo
? `\n\nWant to dial it in? Check **The Lab** for a coach near you, or hit the 📖 [Glossary](/glossary) for related tricks.`
: `\n\nMore in the 📖 [Glossary](/glossary).`;
return `${lead}\n\n${t.desc}${akaLine}${howToTail}`;
}