Portfolio Grid
The Portfolio Grid component provides a powerful filtering, search, and navigation system for displaying portfolio items with multiple categories and subcategories.Overview
Implemented inportfolio-grid.js, this component manages:
- Category filtering: Multiple disciplines (Brands, Dev, Studio, Strategy)
- Search functionality: Real-time portfolio item search
- Subcategory navigation: Dynamic submenu rendering
- Mobile-optimized: Responsive tab navigation with smooth scrolling
Initialization Check
The component only initializes when required elements exist (portfolio-grid.js:11):
Configuration
Categories
Fromportfolio-grid.js:32:
Portfolio Data Structure
Fromportfolio-grid.js:60:
Discipline Labels
Fromportfolio-grid.js:141:
Card Rendering
Template Function
Fromportfolio-grid.js:180:
Render Cards
Fromportfolio-grid.js:211:
Filtering Logic
Fromportfolio-grid.js:218:
Tab Navigation
Render Tabs
Fromportfolio-grid.js:254:
Tab Click Handler
Fromportfolio-grid.js:326:
Search Functionality
Fromportfolio-grid.js:381:
Mobile Menu Toggle
Fromportfolio-grid.js:401:
Required HTML Structure
Usage
-
Include the script:
- Ensure all required elements exist in the DOM
- The component will auto-initialize and render portfolio items
Performance Features
- Conditional initialization: Only runs when required elements exist
- Debounced resize: Prevents excessive submenu updates
- Smooth scrolling: CSS
scroll-behaviorfor better UX - Lazy filtering: Only filters on user interaction
Browser Support
Requires:- ES6+ JavaScript
- Array methods (map, filter, some)
- Template literals
- DOM Level 2 Events

