From 465ac90e60b185cf1315a09a7495138af8f38a1a Mon Sep 17 00:00:00 2001 From: Sarthak-Bhagat2006 Date: Thu, 18 Jun 2026 23:56:40 +0530 Subject: [PATCH] feat(Folder): add keyboard navigation and accessibility support --- src/content/Components/Folder/Folder.css | 6 ++++++ src/content/Components/Folder/Folder.jsx | 17 ++++++++++++++++- src/tailwind/Components/Folder/Folder.jsx | 13 ++++++++++++- src/ts-default/Components/Folder/Folder.css | 6 ++++++ src/ts-default/Components/Folder/Folder.tsx | 16 +++++++++++++++- src/ts-tailwind/Components/Folder/Folder.tsx | 12 +++++++++++- 6 files changed, 66 insertions(+), 4 deletions(-) diff --git a/src/content/Components/Folder/Folder.css b/src/content/Components/Folder/Folder.css index 717e4f0d1..878e6de77 100644 --- a/src/content/Components/Folder/Folder.css +++ b/src/content/Components/Folder/Folder.css @@ -120,3 +120,9 @@ transform-origin: bottom; transition: all 0.3s ease-in-out; } + +.folder:focus-visible { + outline: 2px solid #ffffff; + outline-offset: 4px; + border-radius: 10px; +} diff --git a/src/content/Components/Folder/Folder.jsx b/src/content/Components/Folder/Folder.jsx index 121b394f7..1355e4286 100644 --- a/src/content/Components/Folder/Folder.jsx +++ b/src/content/Components/Folder/Folder.jsx @@ -76,7 +76,22 @@ const Folder = ({ color = '#5227FF', size = 1, items = [], className = '' }) => return (
-
+
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + + handleClick(); + } + }} + tabIndex={0} + role="button" + aria-expanded={open} + aria-label={open ? 'Close folder' : 'Open folder'} + >
{papers.map((item, i) => (
return (
transform: open ? 'translateY(-8px)' : undefined }} onClick={handleClick} + onKeyDown={e => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + + handleClick(); + } + }} + tabIndex={0} + role="button" + aria-expanded={open} + aria-label={open ? 'Close folder' : 'Open folder'} >
= ({ color = '#5227FF', size = 1, items = [] return (
-
+
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + handleClick(); + } + }} + tabIndex={0} + role="button" + aria-expanded={open} + aria-label={open ? 'Close folder' : 'Open folder'} + >
{papers.map((item, i) => (
= ({ color = '#5227FF', size = 1, items = [] return (
= ({ color = '#5227FF', size = 1, items = [] transform: open ? 'translateY(-8px)' : undefined }} onClick={handleClick} + onKeyDown={e => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + handleClick(); + } + }} + tabIndex={0} + role="button" + aria-expanded={open} + aria-label={open ? 'Close folder' : 'Open folder'} >