[ScrollArea] Add scrollbar customization and expose sub-component refs
Los mantenedores suelen responder en 2 días
@rohanchkrabrty ya está trabajando en esto.
Desde el 29/9/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- react, typescript
- Área
- frontend
Línea de trabajo
Empieza leyendo los archivos bajo packages/raystack/raystack/components/scroll-area/ y compara el wrapper existente con el Base UI ScrollArea primitive. Rastrea el uso actual de Viewport, Content, Scrollbar, Thumb y Corner; después, verifica que las props, refs, classNames y la personalización de Corner solicitadas estén expuestas sin duplicar el trabajo transversal trasladado a issues #672 y #673.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
ScrollArea wraps Base UI's ScrollArea primitive. Lacks configuration props for scrollbar appearance and missing accessibility attributes.
Improvements
3. Make overscroll-behavior configurable
Hardcoded to auto in viewport CSS. Should be a prop for controlling scroll chaining behavior.
4. Expose sub-component refs via compound pattern
Cannot access Viewport or Content refs. Cannot customize Content/Viewport classNames from parent.
5. Add corner element customization
Corner element is rendered but not customizable.
API Differences from Base UI
| Base UI | Apsara | Notes |
|---|---|---|
ScrollArea.Root |
ScrollArea |
Flattened naming |
ScrollArea.Viewport |
(internal) | Not exposed |
ScrollArea.Scrollbar |
ScrollArea.Scrollbar |
Wrapped with defaults |
ScrollArea.Thumb |
(internal) | Not exposed |
ScrollArea.Corner |
(internal) | Not exposed |
Moved to Cross-Cutting Issues
The following items have been moved to cross-cutting issues that address them across all components:
- Replace hardcoded CSS values with design tokens (#672)
- Accessibility baseline (#673)
Files
packages/raystack/raystack/components/scroll-area/
- Lenguaje dominante
- TypeScript
- Estrellas
- 69
- Forks
- 13
- Merge medio
- 3 d 15 h
- PR fusionados (30 d)
- 24
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de raystack/apsara
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 2 días
-
DataView: don't offer select/multiselect filters with empty filterOptionsPosiblemente ocupada @rohanchkrabrty la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
raystack/apsara#849 · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de raystack/apsara
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
[Bug]: [A11y] Missing accessible name on icon-only standalone links (WCAG 2.1 SC 2.4.4, 4.1.2)Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
jaegertracing/jaeger-ui#4596 ·
Los mantenedores suelen responder en 1 día
-
area:tui enhancement platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
anthropics/claude-code#101490 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
netlify/netlify-mcp#75 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día