Hybrid Astro UI

A flexible list component composed of ListItem, ListItemMarker, and ListItemContent, allowing fully customizable markers and multi-line content, optimized for Lucide icons.

  • Improved overall application performance by optimizing image and video assets, implementing responsive loading strategies, and reducing unnecessary bandwidth usage across all devices.

  • Designed and implemented a clean, reusable component architecture that enhances maintainability, encourages consistency, and supports scalable feature development across the codebase.

  • Developed full support for dark and light themes using system preferences and persistent user settings, ensuring a seamless visual experience with minimal layout shift.

  • Introduced smooth, hardware-accelerated scrolling behaviors to improve navigation flow, reduce user friction, and create a more cohesive interaction pattern throughout the interface.

  • Built a flexible layout system based on composable primitives, enabling teams to create complex and maintainable page structures with minimal overhead.

  • Enhanced accessibility across the application by adopting semantic markup, implementing ARIA roles, and ensuring keyboard-first navigation works seamlessly.

  • Implemented robust error logging and monitoring tools that provide real-time visibility into application health, improving reliability and reducing debugging time.

pnpm dlx hybrid-astro-ui@latest add list
npx hybrid-astro-ui@latest add list
yarn dlx hybrid-astro-ui@latest add list
bunx hybrid-astro-ui@latest add list

Usage

The List component provides a flexible structure for rendering vertical lists with fully customizable markers and content blocks. It is designed as a low-level primitive that works with any layout, allowing you to build checklists, feature lists, step-by-step guides, or icon-driven descriptions.

This component is composed of three building blocks:

Marker Limitations

The current implementation is tested specifically with Lucide Astro icons, where each icon is passed using:

<Icon  />

This ensures proper alignment and sizing within the marker container.

Because of this, there are several limitations to be aware of:

This design keeps the component simple and predictable while still being flexible enough for most UI use cases.

--- 
import Star from "@lucide/astro/icons/star";
import { 
    List, 
    ListItem, 
    ListItemMarker, 
    ListItemContent
} from "@/src/components/hybrid-astro-ui/list"
---

<List>
    <ListItem>
        <ListItemMarker>
            <Star/>
        </ListItemMarker>
        <ListItemContent>
        <p>Built a flexible layout system based on composable</p>
        </ListItemContent>
    </ListItem>
    <ListItem>
        <ListItemMarker>
            <Star/>
        </ListItemMarker>
        <ListItemContent>
        <p>Built a flexible layout system based on composable</p>
        </ListItemContent>
    </ListItem>
    <ListItem>
        <ListItemMarker>
            <Star/>
        </ListItemMarker>
        <ListItemContent>
        <p>Built a flexible layout system based on composable</p>
        </ListItemContent>
    </ListItem>
</List>