- Prop
href- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- Render as an anchor instead of a div/button.
Docs Components Primitives
Item
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
const itemFixture = { id: "item", href: "/services/ledger-api", leading: "LA", title: "ledger-api", description: "Platform · prod", trailing: "Healthy", bare: false, active: true,} satisfies { id: string; href: string; leading: string; title: string; description: string; trailing: string; bare: boolean; active: boolean;}; import { Item } from "@grassroot/ui-react"; export default function ItemDemo() { return ( <div> <Item href={itemFixture.href} leading={<span aria-hidden="true">{itemFixture.leading}</span>} title={itemFixture.title} description={itemFixture.description} trailing={<span>{itemFixture.trailing}</span>} bare={itemFixture.bare} active={itemFixture.active} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">const itemFixture = { id: "item", href: "/services/ledger-api", leading: "LA", title: "ledger-api", description: "Platform · prod", trailing: "Healthy", bare: false, active: true,} satisfies { id: string; href: string; leading: string; title: string; description: string; trailing: string; bare: boolean; active: boolean;}; import { Item } from "@grassroot/ui-vue";</script> <template> <div> <Item :href="itemFixture.href" :bare="itemFixture.bare" :active="itemFixture.active"> <template #leading ><span aria-hidden="true">{{ itemFixture.leading }}</span></template > <template #title>{{ itemFixture.title }}</template> <template #description>{{ itemFixture.description }}</template> <template #trailing ><span>{{ itemFixture.trailing }}</span></template > </Item> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component } from "@angular/core";const itemFixture = { id: "item", href: "/services/ledger-api", leading: "LA", title: "ledger-api", description: "Platform · prod", trailing: "Healthy", bare: false, active: true,} satisfies { id: string; href: string; leading: string; title: string; description: string; trailing: string; bare: boolean; active: boolean;}; import { GrassrootItem } from "@grassroot/ui-angular"; @Component({ selector: "app-item-demo", standalone: true, imports: [GrassrootItem], template: ` <div> <a grassrootItem [href]="fixture.href" [bare]="fixture.bare" [active]="fixture.active"> <span leading aria-hidden="true">{{ fixture.leading }}</span> <ng-container ngProjectAs="[title]">{{ fixture.title }}</ng-container> <ng-container ngProjectAs="[description]">{{ fixture.description }}</ng-container> <span trailing>{{ fixture.trailing }}</span> </a> </div> `,})export class ItemDemoComponent { protected readonly fixture = itemFixture;} export default ItemDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> const itemFixture = { id: "item", href: "/services/ledger-api", leading: "LA", title: "ledger-api", description: "Platform · prod", trailing: "Healthy", bare: false, active: true, } satisfies { id: string; href: string; leading: string; title: string; description: string; trailing: string; bare: boolean; active: boolean; }; import { Item } from "@grassroot/ui-svelte";</script> {#snippet leading()}<span aria-hidden="true">{itemFixture.leading}</span>{/snippet}{#snippet title()}{itemFixture.title}{/snippet}{#snippet description()}{itemFixture.description}{/snippet}{#snippet trailing()}<span>{itemFixture.trailing}</span>{/snippet} <div> <Item href={itemFixture.href} bare={itemFixture.bare} active={itemFixture.active} {leading} {title} {description} {trailing} /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */const itemFixture = { id: "item", href: "/services/ledger-api", leading: "LA", title: "ledger-api", description: "Platform · prod", trailing: "Healthy", bare: false, active: true,} satisfies { id: string; href: string; leading: string; title: string; description: string; trailing: string; bare: boolean; active: boolean;}; import { Item } from "@grassroot/ui-solid";import type { JSX } from "solid-js"; export default function ItemDemo(): JSX.Element { return ( <div> <Item href={itemFixture.href} leading={<span aria-hidden="true">{itemFixture.leading}</span>} title={itemFixture.title} description={itemFixture.description} trailing={<span>{itemFixture.trailing}</span>} bare={itemFixture.bare} active={itemFixture.active} /> </div> );}Installation
API Reference
Import
import { Item } from "@grassroot/ui-react";
Props
Prop
Type
Default
Requirement
Description
hrefstring | undefined—
optional
Render as an anchor instead of a div/button.
bareboolean | undefined—
optional
Drop the card border + background — for rows inside a list/scroll container.
activeboolean | undefined—
optional
Marks the row as active (sunken tint, crimson inset rule).
- Prop
bare- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Drop the card border + background — for rows inside a list/scroll container.
- Prop
active- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Marks the row as active (sunken tint, crimson inset rule).
Content regions
descriptionleadingtitletrailing
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { Item } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
hrefstring | undefined—
optional
bareboolean | undefinedfalseoptional
activeboolean | undefinedfalseoptional
- Prop
href- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
bare- Type
boolean | undefined- Default
false- Requirement
- optional
- Prop
active- Type
boolean | undefined- Default
false- Requirement
- optional
Content regions
descriptionleadingtitletrailing
Import
import { Component } from "@angular/core";
import { GrassrootItem } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
hrefstring—
optional
barebooleanfalseoptional
activebooleanfalseoptional
- Prop
href- Type
string- Default
- —
- Requirement
- optional
- Prop
bare- Type
boolean- Default
false- Requirement
- optional
- Prop
active- Type
boolean- Default
false- Requirement
- optional
Content regions
descriptionleadingtitletrailing
Import
import { Item } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
hrefstring—
optional
barebooleanfalseoptional
activebooleanfalseoptional
- Prop
href- Type
string- Default
- —
- Requirement
- optional
- Prop
bare- Type
boolean- Default
false- Requirement
- optional
- Prop
active- Type
boolean- Default
false- Requirement
- optional
Content regions
descriptionleadingtitletrailing
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { Item } from "@grassroot/ui-solid";
import type { JSX } from "solid-js";
Props
Prop
Type
Default
Requirement
hrefstring—
optional
bareboolean—
optional
activeboolean—
optional
- Prop
href- Type
string- Default
- —
- Requirement
- optional
- Prop
bare- Type
boolean- Default
- —
- Requirement
- optional
- Prop
active- Type
boolean- Default
- —
- Requirement
- optional
Content regions
descriptionleadingtitletrailing
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.