Skip to content
Projects

SameerJS6/lina has 350 GitHub stars and 7 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-09 08:23 UTC. Last push 2026-04-06.

How these counts are measured

Drop-in shadcn/ui ScrollArea replacement (Radix/Base UI) with native touch, adaptive masks, and polished interactions.

What you can do

  • Adaptive mask - Subtle edge fades appear only when content is scrollable and adapt in real time to scroll position, axis, and container shape.
  • Micro‑interactions - Hover/press effects for the custom scrollbar on non‑touch (desktop) devices, with responsive thumb behavior.
  • Native touch optimization - Uses the right touch‑action, momentum scrolling, and passive listeners so scrolling feels truly native on iOS/Android while staying precise on desktop.
  • Drop‑in replacement - Matches shadcn/ui's ScrollArea API, same props, slots, and className ergonomics—so you can swap it in with zero extra step.

Measured star growth

in 24h
0
in 7 days
0
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Lina

The Adaptive Scroll Area for Modern UIs

A responsive scroll area that feels native on touch devices, offering custom styling and enhanced interactions where it matters most.

Lina is a drop‑in replacement for shadcn/ui's ScrollArea with better defaults and a more native feel.

Features

  • Adaptive mask - Subtle edge fades appear only when content is scrollable and adapt in real time to scroll position, axis, and container shape.
  • Micro‑interactions - Hover/press effects for the custom scrollbar on non‑touch (desktop) devices, with responsive thumb behavior.
  • Native touch optimization - Uses the right touch‑action, momentum scrolling, and passive listeners so scrolling feels truly native on iOS/Android while staying precise on desktop.
  • Drop‑in replacement - Matches shadcn/ui's ScrollArea API, same props, slots, and className ergonomics—so you can swap it in with zero extra step.
  • Radix and Base UI variants - Choose Radix or Base UI primitives while keeping a consistent API and visual design.

Installation

npx shadcn@latest add https://lina.sameer.sh/r/lina-radix.json

Usage

import { ScrollArea } from "@/components/ui/scroll-area";

export default function Example() {
  return (
    <ScrollArea className="h-[200px] w-[350px] rounded-md border p-4">
      Jokester began sneaking into the castle in the middle of the night and leaving jokes all over the place: under the
      king's pillow, in his soup, even in the royal toilet. The king was furious, but he couldn't seem to stop Jokester.
      And then, one day, the people of the kingdom discovered that the jokes left by Jokester were so funny that they
      couldn't help but laugh. And once they started laughing, they couldn't stop.
    </ScrollArea>
  );
}

Documentation

Visit Docs

Credits

Built on top of:

License

MIT

Explore related projects