UNPKG

@n8d/htwoo-patterns

Version:

hTWOo Patterns to setup custom style guide

268 lines (222 loc) 7.82 kB
--- title: Quick Links List Grid order: 60 --- # Quick Links List Grid A responsive grid layout for displaying quick links in list format. Features clean list-style presentation with icon, title, and optional description text, optimized for informational navigation scenarios. ## Overview The quick links list grid presents navigation items in a clean, list-style format with icon, title, and optional description. This format provides more context than compact versions while maintaining visual clarity and efficient use of space. ## Features - **List-Style Format**: Clean presentation with icon, title, and description - **Optional Descriptions**: Flexible content with or without description text - **Responsive Grid**: Adapts to different screen sizes and container widths - **Icon Integration**: Supports both image and SVG icons with consistent sizing - **Content Flexibility**: Accommodates varying text lengths gracefully - **Hover Effects**: Subtle interactive feedback with background changes ## Structure The component consists of: 1. **Grid Container**: `.hoo-ql-grid` - Main grid layout container 2. **Grid Items**: `{{> molecules-ql-list-item}}` - Individual list-style quick links 3. **Responsive Columns**: CSS Grid with responsive breakpoints ## Data Structure ```json { "quick-links": [ { "href": "/employee-handbook", "title": "Employee Handbook", "description": "Policies, procedures, and company guidelines", "qlimg": { "src": "/icons/handbook.svg", "alt": "Handbook icon" } }, { "href": "/benefits", "title": "Benefits Portal", "description": "Health insurance, retirement, and wellness programs", "qlimg": { "src": "/icons/benefits.svg", "alt": "Benefits icon" } }, { "href": "/time-off", "title": "Request Time Off", "description": "Submit vacation and sick leave requests", "qlimg": { "src": "/icons/calendar.svg", "alt": "Calendar icon" } } ] } ``` ## CSS Classes - `.hoo-ql-grid`: Main grid container - `.hoo-ql-grid.col-2`: Two-column grid layout - `.hoo-ql-grid.col-3`: Three-column grid layout - `.hoo-ql-grid.col-4`: Four-column grid layout - `.hoo-qllist`: Individual list item styling - `.hoo-qllist.no-desc`: List item without description ## Styling ### Grid Layout - **Default**: Auto-responsive columns based on content - **Grid Gap**: 16px spacing between items - **Min Column Width**: 240px minimum item width - **Max Columns**: 3 columns maximum on large screens ### Visual Design - **Item Background**: White with subtle border (`#d1d1d1`) - **Border Radius**: 4px for modern appearance - **Padding**: 16px internal spacing - **Typography**: 14px title, 12px description - **Icon Size**: 32px for better visual prominence ### Layout Structure - **Direction**: Horizontal layout with icon on left - **Alignment**: Icon and text vertically centered - **Spacing**: 12px gap between icon and text content - **Text Stack**: Title above description in text area ## Use Cases ### Resource Directory ```handlebars <section class="resource-directory"> <h2>Employee Resources</h2> <div class="hoo-ql-grid col-3"> <!-- HR resources, policies, forms --> </div> </section> ``` ### Information Portal ```handlebars <div class="info-portal"> <h3>Information Center</h3> <div class="hoo-ql-grid"> <!-- Documentation, guides, FAQs --> </div> </div> ``` ### Service Catalog ```handlebars <section class="service-catalog"> <h2>Available Services</h2> <div class="hoo-ql-grid col-2"> <!-- Service descriptions and access points --> </div> </section> ``` ### Knowledge Base ```handlebars <nav class="knowledge-base"> <h3>Knowledge Base</h3> <div class="hoo-ql-grid col-3"> <!-- Articles, tutorials, documentation --> </div> </nav> ``` ## Accessibility - **Semantic Structure**: Uses proper link elements with descriptive text - **Keyboard Navigation**: Full keyboard navigation support - **Screen Reader Support**: Clear titles and descriptions for context - **Focus Management**: Visible focus indicators for keyboard users - **Touch Targets**: Minimum 44px touch target size - **Content Hierarchy**: Clear visual hierarchy with title and description ## Performance - **Lightweight**: Minimal CSS and HTML structure - **CSS Grid**: Modern, efficient layout with native browser support - **No JavaScript**: Pure CSS implementation for optimal performance - **Content Loading**: Supports progressive loading of descriptions ## Grid Variations ### Column Count Classes - `.col-2`: Two columns, ideal for detailed descriptions - `.col-3`: Three columns, balanced layout - `.col-4`: Four columns, more compact presentation ### Responsive Breakpoints - **Mobile**: Single column (< 576px) - **Small**: 2 columns (576px - 768px) - **Medium**: 2-3 columns (768px - 992px) - **Large**: 3-4 columns (992px+) ## Content Flexibility ### With Descriptions ```handlebars <a class="hoo-qllink" href="/resource"> <article class="hoo-qllist"> <div class="hoo-ql-media"> <img src="/icon.svg" alt="Resource icon" /> </div> <div class="hoo-qlinfo"> <div class="hoo-qltitle">Resource Title</div> <div class="hoo-qldesc">Detailed description of the resource</div> </div> </article> </a> ``` ### Without Descriptions ```handlebars <a class="hoo-qllink" href="/resource"> <article class="hoo-qllist no-desc"> <div class="hoo-ql-media"> <img src="/icon.svg" alt="Resource icon" /> </div> <div class="hoo-qlinfo"> <div class="hoo-qltitle">Resource Title</div> </div> </article> </a> ``` ## Content Guidelines ### Title Text - Keep titles descriptive but concise - Use sentence case for better readability - Avoid technical jargon when possible - Ensure titles are unique and meaningful ### Description Text - Provide helpful context about the link destination - Keep descriptions to 1-2 sentences - Use active voice when possible - Avoid repeating the title text ### Icon Selection - Use icons that clearly represent the content or action - Maintain consistent icon style throughout the grid - Ensure icons are recognizable at 32px size - Provide meaningful alt text for accessibility ## Browser Support - **Modern Browsers**: Full CSS Grid support in Chrome, Firefox, Safari, Edge - **Legacy Support**: Flexbox fallback for older browsers - **Mobile Browsers**: Optimized for mobile and tablet interfaces - **Progressive Enhancement**: Graceful degradation on older browsers ## SCSS Import ## Interactive States ### Default State - Clean white background with subtle border - Standard text colors and icon appearance - No visual elevation or shadow ### Hover State - Light background tint (`#f3f2f1`) - Subtle border color change - Smooth transition animation ### Focus State - Blue focus ring for keyboard navigation - Maintained hover state styling - Clear visual indicator for accessibility ## Integration Examples ### With Section Header ```handlebars <section class="resources-section"> <header class="section-header"> <h2>Employee Resources</h2> <p>Access important documents and information</p> </header> {{> organism-quick-links-list-grid}} </section> ``` ### Within Card Layout ```handlebars <div class="dashboard-card"> <div class="card-header"> <h3>Quick Links</h3> </div> <div class="card-body"> {{> organism-quick-links-list-grid}} </div> </div> ```