This challenge is focused on building a responsive Folder Grid interface in React using TypeScript. It's designed to evaluate your skills in component architecture, styling, interaction design, and system-level thinking.
You'll be working in a preconfigured CodeSandbox environment that includes folder data and an icon system. Your task is to design and implement a reusable FolderGrid UI.
- Fork the CodeSandbox and implement your solution.
- All dependencies and mock data are included—no setup required
- Add a short summary in the CodeSandbox description with:
- Assumptions or decisions you made
- Anything unfinished (if applicable)
- Be prepared to walk us through your approach and code
This file contains the mock data for the folder grid:
- Array of folder objects with properties like
id,name,icon, etc. - Each folder has a unique identifier and display properties
- The data structure is fully typed with TypeScript interfaces
This file provides the design system configuration:
- Color palette and typography settings
- Spacing and layout constants
- Animation timing and easing functions
- Responsive breakpoints
- Icon system configuration
This file contains the icon component system:
- Reusable Icon component with TypeScript props interface
- Support for different sizes and colors
Implement a responsive FolderGrid component that:
- Displays a list of folders in a grid layout
- Shows folder icons and names
- Supports hover and selection interactions
- Is fully typed with TypeScript
- Looks good and functions well across screen sizes
- React + TypeScript
- Strong component typing
- Responsive grid layout (CSS Grid or Flexbox)
- Clear component structure
- Clean, maintainable code
- Intuitive grid layout with visual hierarchy
- Smooth hover and selection animations
- Consistent styling using provided icon system
- Responsive and adaptive layout
- Sensible loading states
- Accessibility considerations (roles, focus, keyboard nav if possible)
- Type safety and prop typing
- Component reusability and structure
- Clean, readable code
- Responsive and intuitive layout
- Attention to interaction states and hierarchy
- Touch support and accessibility
- React and TypeScript best practices
- Performance considerations
- State management (if needed)
Thanks for taking the time to complete this—we're excited to see your work! Let us know if you have any questions.