
scroll-areas
Avoid inner scroll containers; when unavoidable, one axis at a time. Use when a layout, table or panel might scroll inside the page.
- Installs
- 855
- Last 24h
- +8
- Trending rank
- #9730
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/dembrandt/dembrandt-skills --skill scroll-areas- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads scroll-areas automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Scroll Areas
Avoid Scroll Areas by Default
Scroll containers inside a layout — panels, drawers, tables, modals with inner overflow — create friction. Users must discover that a region scrolls, manage multiple independent scroll positions simultaneously, and context-switch between scroll areas on the same screen.
Default: let the page scroll. A single page-level scroll is universally understood and requires no discovery. Before introducing an inner scroll area, ask whether the layout can be restructured so the page itself handles the overflow.
Alternatives to inner scroll:
- Pagination or load-more for long lists
- Collapsible sections (accordion) for long detail panels
- A separate page or route for content that would otherwise fill a scroll area
- Progressive disclosure — show less by default, expand on demand
When a Scroll Area Is Justified
Some layouts genuinely require inner scroll:
- Fixed-height sidebars with navigation trees longer than the viewport
- Data tables where the header must remain visible while rows scroll
- Chat or log panels where the stream is continuous and the surrounding layout is fixed
- Code editors or terminal panes embedded in a larger application shell
In these cases, proceed — but apply the constraints below.
One Axis Only
Never create a scroll container that scrolls on both axes simultaneously. Two-axis scroll is disorienting, hard to control precisely, and nearly unusable on touch devices.
/* One axis: vertical */
overflow-y: auto;
overflow-x: hidden;
/* One axis: horizontal (e.g. wide table) */
overflow-x: auto;
overflow-y: hidden;
/* Never */
overflow: auto; /* allows both axes */
If content requires both axes — e.g. a wide table inside a constrained panel — restructure the layout so the table's horizontal scroll is the only scroll in the view, with the page itself not scrolling at that point.
Always User-Controlled
Scroll must never happen automatically without user intent. Specifically:
- No auto-scrolling that moves the viewport without the user initiating it
- No scroll hijacking — do not intercept the native scroll event to animate or pace it artificially
- Scroll-to on load is acceptable only when restoring a previous scroll position (e.g. returning to a list after navigating away)
- Scroll-to for errors or anchors is acceptable as a response to a user action (submitting a form with errors, clicking a table-of-contents link)
Exception: chat and log panels may auto-scroll to the bottom on new content, but only if the user is already at the bottom. If the user has scrolled up to read, do not force them back down — show a "new messages" indicator instead.
Scroll Affordance
Users must be able to tell a region is scrollable before they attempt to scroll it.
- Clip content visually at the edge — a partially visible item signals "there is more"
- Use a subtle scrollbar (not
scrollbar-width: none) so the track is visible - On touch, a partial item at the edge is the primary affordance — ensure the container does not have
overflow: hiddenon the trailing edge
Review Checklist
- Is every inner scroll area genuinely necessary, or can the layout be restructured to use page scroll?
- Does every scroll container scroll on one axis only?
- Is
overflow: auto(two-axis) avoided on all scroll containers? - Is scroll always user-initiated — no hijacking, no forced auto-scroll?
- Is the scrollable region visually apparent (partial content, visible scrollbar)?
- On touch devices, is scroll smooth and native (
-webkit-overflow-scrolling: touchor equivalent)?
FAQ
What does the scroll-areas skill do?
Avoid inner scroll containers; when unavoidable, one axis at a time. Use when a layout, table or panel might scroll inside the page.
How do I install scroll-areas?
Run npx skills add https://github.com/dembrandt/dembrandt-skills --skill scroll-areas in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/scroll-areas/ (personal) or .claude/skills/scroll-areas/ (project).
Which AI agents can use scroll-areas?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is scroll-areas safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains scroll-areas?
It is published by dembrandt in dembrandt/dembrandt-skills. It has 855 recorded installs.
More from dembrandt/dembrandt-skills
nielsen-usability-heuristics
dembrandt/dembrandt-skills
Nielsen's 10 usability heuristics. Use when auditing an interface, designing interaction flows, writing error messages or reviewing usability.
performance-and-web-vitals
dembrandt/dembrandt-skills
Lighthouse audits and Core Web Vitals — LCP, CLS, INP. Use when optimising page load, layout shift, input delay, images, fonts or render-blocking resources.
color-mode-and-theme
dembrandt/dembrandt-skills
Light, dark or both, and when a theme selector is worth it. Use when defining a base palette or deciding on dark mode support.
ui-density
dembrandt/dembrandt-skills
Match information density to platform and user type. Use when designing data tables, dashboards or toolbars, or adapting a desktop product for mobile.
form-design
dembrandt/dembrandt-skills
Helper text, placeholders, validation and submit behaviour. Use when designing or reviewing a form, input field or data entry UI.
brand-visual-language
dembrandt/dembrandt-skills
Shape language across type, radius and icons carries brand personality. Use when starting a design system, picking icons or radius tokens, or reviewing visual consistency.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.