Getting Started
Components
- Accordion
- Alert
- Alert Dialog
- Aspect Ratio
- Autocomplete
- Avatar
- Badge
- Breadcrumb
- Button
- Button Group
- Calendar
- Card
- Carousel
- Checkbox
- Collapsible
- Combobox
- Command
- Context Menu
- Data Table
- Date Picker
- Dialog
- Dropdown Menu
- Empty
- Field
- Form Field
- Hover Card
- Icon
- Input Group
- Input OTP
- Input
- Item
- Kbd
- Label
- Menubar
- Navigation Menu
- Pagination
- Popover
- Progress
- Radio Group
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner (Toast)
- Spinner
- Switch
- Table
- Tabs
- Textarea
- Toggle
- Toggle Group
- Tooltip
Stack
Scroll Area
Augments native scroll functionality for custom, cross-browser styling.
Tags
v1.2.0-beta.50
v1.2.0-beta.49
v1.2.0-beta.48
v1.2.0-beta.47
v1.2.0-beta.46
v1.2.0-beta.45
v1.2.0-beta.44
v1.2.0-beta.43
v1.2.0-beta.42
v1.2.0-beta.41
v1.2.0-beta.40
v1.2.0-beta.39
v1.2.0-beta.38
v1.2.0-beta.37
v1.2.0-beta.36
v1.2.0-beta.35
v1.2.0-beta.34
v1.2.0-beta.33
v1.2.0-beta.32
v1.2.0-beta.31
v1.2.0-beta.30
v1.2.0-beta.29
v1.2.0-beta.28
v1.2.0-beta.27
v1.2.0-beta.26
v1.2.0-beta.25
v1.2.0-beta.24
v1.2.0-beta.23
v1.2.0-beta.22
v1.2.0-beta.21
v1.2.0-beta.20
v1.2.0-beta.19
v1.2.0-beta.18
v1.2.0-beta.17
v1.2.0-beta.16
v1.2.0-beta.15
v1.2.0-beta.14
v1.2.0-beta.13
v1.2.0-beta.12
v1.2.0-beta.11
v1.2.0-beta.10
v1.2.0-beta.9
v1.2.0-beta.8
v1.2.0-beta.7
v1.2.0-beta.6
v1.2.0-beta.5
v1.2.0-beta.4
v1.2.0-beta.3
v1.2.0-beta.2
v1.2.0-beta.1
import { Component } from '@angular/core';
import { HlmScrollAreaImports } from '@spartan-ng/helm/scroll-area';
import { HlmSeparatorImports } from '@spartan-ng/helm/separator';
import { NgScrollbarModule } from 'ngx-scrollbar';
@Component({
selector: 'spartan-scroll-area-preview',
imports: [HlmSeparatorImports, HlmScrollAreaImports, NgScrollbarModule],
template: `
<ng-scrollbar hlm class="h-72 w-48 rounded-md border" appearance="compact">
<div class="p-4" scrollViewport>
<h4 class="mb-4 text-sm leading-none font-medium">Tags</h4>
@for (tag of tags; track tag) {
<div class="text-sm">
{{ tag }}
<div hlmSeparator class="my-2"></div>
</div>
}
</div>
</ng-scrollbar>
`,
})
export class ScrollAreaPreview {
public tags = Array.from({ length: 50 }).map((_, i, a) => `v1.2.0-beta.${a.length - i}`);
}About
Scroll area is built on top of ngx-scrollbar directive by @murhafsousli .
Installation
ng g @spartan-ng/cli:ui scrollarea
npx nx g @spartan-ng/cli:ui scrollarea
Usage
import { HlmScrollAreaImports } from '@spartan-ng/helm/scroll-area';<ng-scrollbar hlm class="h-72 w-48 rounded-md border" appearance="compact">
<div class="p-6 whitespace-nowrap">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium architecto,<br>
asperiores beatae consequuntur dolor ducimus et exercitationem facilis fugiat magni<br>
nisi officiis quibusdam rem repellat reprehenderit totam veritatis voluptatibus! Nobis.
</div>
</ng-scrollbar>Examples
Horizontal
import { Component } from '@angular/core';
import { HlmScrollAreaImports } from '@spartan-ng/helm/scroll-area';
import { NgScrollbarModule } from 'ngx-scrollbar';
@Component({
selector: 'spartan-scroll-area-horizontal-preview',
imports: [HlmScrollAreaImports, NgScrollbarModule],
template: `
<ng-scrollbar hlm class="w-96 rounded-md border whitespace-nowrap">
<div class="flex w-max space-x-4 p-4">
@for (artwork of _works; track artwork.artist) {
<figure class="shrink-0">
<div class="overflow-hidden rounded-md">
<img
[src]="artwork.art"
[alt]="'Photo by ' + artwork.artist"
class="aspect-[3/4] h-fit w-fit object-cover"
width="{300}"
height="{400}"
/>
</div>
<figcaption class="text-muted-foreground pt-2 text-xs">
Photo by
<span class="text-foreground font-semibold">
{{ artwork.artist }}
</span>
</figcaption>
</figure>
}
</div>
</ng-scrollbar>
`,
})
export class ScrollAreaHorizontalPreview {
protected readonly _works = [
{
artist: 'Ornella Binni',
art: 'https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80',
},
{
artist: 'Tom Byrom',
art: 'https://images.unsplash.com/photo-1548516173-3cabfa4607e9?auto=format&fit=crop&w=300&q=80',
},
{
artist: 'Vladimir Malyavko',
art: 'https://images.unsplash.com/photo-1494337480532-3725c85fd2ab?auto=format&fit=crop&w=300&q=80',
},
];
}Helm API
HlmScrollArea
Selector: ng-scrollbar[hlm],ng-scrollbar[hlmScrollbar]
Inputs
| Prop | Type | Default | Description |
|---|---|---|---|
| class | ClassValue | - | - |
On This Page
Stop configuring. Start shipping.
Zerops powers spartan.ng and Angular teams worldwide.
One-command deployment. Zero infrastructure headaches.
Deploy with Zerops