Home

Awesome

ngx-scrollbar

<a href="https://ngxui.com" target="_blank" style="display: flex;gap: .5rem;align-items: center;cursor: pointer; padding: 0 0 0 0; height: fit-content;"> <img src="https://ngxui.com/assets/img/ngxui-logo.png" style="width: 64px;height: 64px;"> </a>

This Library is part of the NGXUI ecosystem. <br> View all available components at https://ngxui.com

@omnedia/ngx-scrollbar is an Angular library that provides a customizable and lightweight scrollbar component. This component offers a custom scrollbar with smooth scrolling functionality and allows for full control over its appearance through styling.

Features

Installation

Install the library using npm:

npm install @omnedia/ngx-scrollbar

Usage

Import the NgxScrollbarComponent in your Angular module or component:

import {NgxScrollbarComponent} from '@omnedia/ngx-scrollbar';

@Component({
  ...
    imports:
[
  ...
    NgxScrollbarComponent,
],
...
})

Use the component in your template:


<om-scrollbar [styleClass]="'custom-scrollbar'">
  <div>
    <!-- Your scrollable content here -->
    <p>Scrollable content 1</p>
    <p>Scrollable content 2</p>
    <p>Scrollable content 3</p>
  </div>
</om-scrollbar>

How It Works

API


<om-scrollbar [styleClass]="'your-custom-class'" [onlyShowOnHover]="onlyShowOnHover">
  <ng-content></ng-content>
</om-scrollbar>

Example


<om-scrollbar [styleClass]="'custom-scrollbar-style'">
  <div>
    <p>Item 1</p>
    <p>Item 2</p>
    <p>Item 3</p>
    <!-- Add more content here -->
  </div>
</om-scrollbar>

This will create a custom scrollbar for the content with the specified custom styles.

Styling

You can style the component globally or use the styleClass input to apply your custom styles. <br> Make sure to give the om-scrollbar component a height of 100% in your component. <br> The max-height is defined by the components parent component.

Custom Scrollbar Styling Example

In this example, the scrollbar bar is styled to be larger and colored differently:


<div class="nav-bar">
  <om-scrollbar styleClass="custom-scrollbar">
    <div class="nav-items">
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
      <p>Content</p>
    </div>
  </om-scrollbar>
</div>
/* Component styling */
om-scrollbar {
  height: 100%;
}

.nav-bar {
  height: 500px
}

.nav-items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-size: 2rem;
}


/* Global styling */
.custom-scrollbar {
  background-color: rgb(60, 60, 60) !important;
  width: 0.5rem !important;
  border-radius: 12px !important;
  transition: background-color 0.2s;

  &:hover,
  &.om-scrollbar-bar-active {
    background-color: rgb(80, 80, 80) !important;
    opacity: 1 !important;
  }
}

Contributing

Contributions are welcome. Please submit a pull request or open an issue to discuss your ideas.

License

This project is licensed under the MIT License.