{"id":14970962,"url":"https://github.com/mood-al/svelte-tabs-scrollable","last_synced_at":"2025-10-24T22:39:38.195Z","repository":{"id":65475595,"uuid":"579803881","full_name":"Mood-al/svelte-tabs-scrollable","owner":"Mood-al","description":"a svelte scrollable tabs component with many additional features","archived":false,"fork":false,"pushed_at":"2023-01-06T00:02:41.000Z","size":180,"stargazers_count":22,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-16T04:53:15.518Z","etag":null,"topics":["scrollable-tabs","svelete","tab","tabs"],"latest_commit_sha":null,"homepage":"https://svelte-tabs-scrollable.vercel.app/","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mood-al.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-19T00:41:05.000Z","updated_at":"2025-03-02T07:15:42.000Z","dependencies_parsed_at":"2023-02-05T00:16:04.567Z","dependency_job_id":null,"html_url":"https://github.com/Mood-al/svelte-tabs-scrollable","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Mood-al/svelte-tabs-scrollable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mood-al%2Fsvelte-tabs-scrollable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mood-al%2Fsvelte-tabs-scrollable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mood-al%2Fsvelte-tabs-scrollable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mood-al%2Fsvelte-tabs-scrollable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mood-al","download_url":"https://codeload.github.com/Mood-al/svelte-tabs-scrollable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mood-al%2Fsvelte-tabs-scrollable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278638089,"owners_count":26019943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["scrollable-tabs","svelete","tab","tabs"],"created_at":"2024-09-24T13:44:25.536Z","updated_at":"2025-10-06T15:56:49.508Z","avatar_url":"https://github.com/Mood-al.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# svelte-tabs-scrollable\n\n\u003e A simple svelte scrollable tabs with a lot of additional features and with fully supporting of RTL mode\n\u003e This package is the Svelte version of \u003ca href=\"https://www.npmjs.com/package/react-tabs-scrollable\" target=\"_blank\" rel=\"noopener\"\u003e\u003cspan\u003ereact-tabs-scrollable\u003c/span\u003e \u003c/a\u003e package!!\n\n[![NPM](https://img.shields.io/npm/v/svelte-tabs-scrollable.svg)](https://www.npmjs.com/package/svelte-tabs-scrollable) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n\n## Install\n\n```bash\nnpm install --save svelte-tabs-scrollable\nyarn add svelte-tabs-scrollable\n```\n\n## Demo\n\n### \u003ca href=\"https://svelte-tabs-scrollable.vercel.app\" target=\"_blank\" rel=\"noopener\"\u003e\u003cspan\u003eDemo\u003c/span\u003e \u003c/a\u003e\n\n## Features\n\n- This package is the svelte version of \u003ccode\u003ereact-tabs-scrollable \u003c/code\u003e package!!\n- Easy to start with it takes you less than minute to start it up!\n- It has many features and so easy to customize\n- Fully support for RTL (actually the reason why I built this component is because RTL)\n- You can control in literally everything inside it\n- Great to use in navigation , menus and lists or any proper use for tabs\n- And much more ..\n\n## Usage\n\n```jsx\n\n\u003cscript\u003e\n\n\nimport Tabs from 'svelte-tabs-scrollable/Tabs.svelte';\nimport Tab from 'svelte-tabs-scrollable/Tab.svelte';\n\n// define the initail state of the active tab to start with\nlet activeTab = 10;\n\n\u003c/script\u003e\n\u003cTabs {activeTab} \u003e\n\t{#each [...Array(33).keys()] as item}\n\t\t\u003cTab\u003e\n\t\t\ttab {item}\n\t\t\u003c/Tab\u003e\n\t{/each}\n\u003c/Tabs\u003e\n\n```\n\n## Advanced example\n\n```jsx\n\n\u003cscript\u003e\n\t// @ts-nocheck\n\n\timport Tabs from 'svelte-tabs-scrollable/Tabs.svelte';\n\timport Tab from 'svelte-tabs-scrollable/Tab.svelte';\n\n\tlet isRTL = false;\n\tconst onClick = () =\u003e {\n\t\tisRTL = !isRTL;\n\t};\n\tlet activeTab = 13;\n\tconst onTabClick = (e, index) =\u003e {\n\t\tconsole.log(index);\n\t};\n\t$: {\n\t\tif (typeof window !== 'undefined') {\n\t\t\tconst body = window.document.body;\n\t\t\tisRTL ? (body.dir = 'rtl') : (body.dir = 'ltr');\n\t\t}\n\t}\n\tlet goToEnd;\n\tlet goToStart;\n\tlet showTabsScroll = false;\n\tlet hideNavBtns = false;\n\tconst didReachEnd = (val) =\u003e {\n\t\t// sets if the tabs reached the end point of the tab's container\n\t};\n\tconst didReachStart = (val) =\u003e {\n\t\t// sets if the tabs reached the start point of the tab's container\n\t};\n\u003c/script\u003e\n\n\u003c!-- I couldn't add comments between the \u003cTabs/\u003e's props -_- --\u003e\n\u003cTabs\n\t{activeTab}\n\t{onTabClick}\n\tbind:goToEnd\n\tbind:goToStart\n\t{isRTL}\n\t{didReachStart}\n\t{didReachEnd}\n\tscrollSelectedToCenterOfView={false}\n\tscrollSelectedToEndOfView={false}\n\tanimationDuration={300}\n\thideNavBtnsOnMobile={true}\n\t{showTabsScroll}\n\t{hideNavBtns}\n\ttabsClassName=\"ss\"\n\ttabsContainerClassName=\"ss\"\n\u003e\n\t{#each [...Array(33).keys()] as item}\n          \u003cTab\n            as=\"a\"\n            asProps={{\n                href: '/#',\n                ['data-item']: item\n            }}\n            tabClassName=\"custom-class\"\u003e\n            tab {item}\n         \u003c/Tab\u003e\n\t{/each}\n\u003c/Tabs\u003e\n\n\u003cbutton on:click={() =\u003e goToEnd()}\u003ego to end\u003c/button\u003e\n\u003cbutton on:click={() =\u003e goToStart()}\u003ego to start\u003c/button\u003e\n\u003cbutton on:click={onClick}\u003e{isRTL ? 'RTL' : 'LTR'}\u003c/button\u003e\n\u003cdiv style=\"border : 1px solid #000; display: inline-block\"\u003e\n\t\u003cinput bind:checked={showTabsScroll} type=\"checkbox\" id=\"showTabsScroll\" /\u003e\n\t\u003clabel for=\"showTabsScroll\"\u003e showTabsScroll : {showTabsScroll} \u003c/label\u003e\n\u003c/div\u003e\n\u003cdiv style=\"border : 1px solid #000; display: inline-block\"\u003e\n\t\u003cinput bind:checked={hideNavBtns} type=\"checkbox\" id=\"hideNavBtns\" /\u003e\n\t\u003clabel for=\"hideNavBtns\"\u003e hideNavBtns : {hideNavBtns}\u003c/label\u003e\n\u003c/div\u003e\n```\n\n\u003e You can see the full examples in the \u003ca href=\"https://svelte-tabs-scrollable.vercel.app/demos\" target=\"_blank\" rel=\"noopener\"\u003e\u003cspan\u003edemos\u003c/span\u003e\u003c/a\u003e's page\n\n## Tabs' API\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eName\u003c/td\u003e\n        \u003ctd\u003eDefault\u003c/td\u003e\n        \u003ctd\u003eType\u003c/td\u003e\n        \u003ctd\u003eDescription\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eactiveTab*\u003c/code\u003e \u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003einteger\u003c/td\u003e\n        \u003ctd\u003ethe selected tab value which must be passed to the commponent\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eonTabClick\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003efunction\u003c/td\u003e\n        \u003ctd\u003e \u003ccode\u003efunction(event, value) =\u0026gt; void\u003c/code\u003e callback function fires on tab click. It has two props, the first on is the event object the second on is the selected tab value\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c!-- \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eaction\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003eref\u003c/td\u003e\n        \u003ctd\u003ereact ref fired when the component mounts. It's useful if you want to some functionalities programmatically. It supports 4 function : \u003cbr /\u003e\n                \u003cdiv\u003e\u003ccode\u003eonLeftBtnClick ,onRightBtnClick, goToStart, goToEnd\u003c/code\u003e\u003c/div\u003e\n                \u003cbr /\u003e  \u003cdiv\u003e\u003ccode\u003eonLeftBtnClick\u003c/code\u003e : to control the left btn click and use your own navigation button. you can call it by so  \u003ccode\u003eref.onLeftBtnClick()\u003c/code\u003e \u003c/div\u003e \n        \u003cbr/\u003e\n       \u003cdiv\u003e \u003ccode\u003eonRightBtnClick\u003c/code\u003e : to control the right btn click and use your own navigation button. you can call it by so  \u003ccode\u003eref.onRightBtnClick()\u003c/code\u003e \n         \u003cbr/\u003e\n        \u003c/div\u003e \n        \u003cbr/\u003e\n       \u003cdiv\u003e \u003ccode\u003egoToStart\u003c/code\u003e : to control the tabs to go to the start of the tabs container. you can call it by so  \u003ccode\u003eref.goToStart()\u003c/code\u003e \u003c/div\u003e \u003cbr /\u003e \n       \u003cdiv\u003e \u003ccode\u003egoToEnd\u003c/code\u003e : to control the tabs to go to the end of the tabs container. you can call it by so  \u003ccode\u003eref.goToEnd()\u003c/code\u003e \u003c/div\u003e \n        \u003cspan\u003e\u003c/span\u003e\n     \u003c/td\u003e\n    \u003c/tr\u003e --\u003e\n\t \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etabsContainerClassName\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e string\u003c/td\u003e\n        \u003ctd\u003e adds a css class for the tabs' container \u003c/td\u003e\n    \u003c/tr\u003e\n\t \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etabsClassName\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e string\u003c/td\u003e\n        \u003ctd\u003eadds a css class for the tabs \u003c/td\u003e\n    \u003c/tr\u003e\n    \t \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eonLeftBtnClick\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e function \u003c/td\u003e\n        \u003ctd\u003e  \u003ccode\u003eonLeftBtnClick\u003c/code\u003e : a function that scrolls the tabs to the left. to use it you must bind it with the \u003cTabs /\u003e component like so \u003ccode\u003e bind:onLeftBtnClick \u003c/code\u003e \u003c/code\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \t\u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eonRightBtnClick\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e function \u003c/td\u003e\n        \u003ctd\u003e  \u003ccode\u003eonRightBtnClick\u003c/code\u003e : a function that scrolls the tabs to the right. to use it you must bind it with the \u003cTabs /\u003e component like so \u003ccode\u003e bind:onRightBtnClick \u003c/code\u003e \u003c/code\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n\t \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003egoToStart\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e function\u003c/td\u003e\n        \u003ctd\u003e  \u003ccode\u003egoToStart\u003c/code\u003e : a function that scrolls to the start of the tabs container. to use it you must bind it with the \u003cTabs /\u003e component like so \u003ccode\u003e bind:goToStart \u003c/code\u003e \u003c/code\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n\t \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003egoToEnd\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e function\u003c/td\u003e\n        \u003ctd\u003e  \u003ccode\u003egoToEnd\u003c/code\u003e : a function that scrolls to the end of the tabs container. to use it you must bind it with the \u003cTabs /\u003e component like so \u003ccode\u003e bind:goToEnd\u003c/code\u003e \u003c/code\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eisRTL\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003eboolean\u003c/td\u003e\n        \u003ctd\u003e sets if the direction of the tabs is RTL or not\u003c/td\u003e\n    \u003c/tr\u003e\n      \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003edidReachEnd\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003efunction\u003c/td\u003e\n        \u003ctd\u003e sets if the tabs reached the end point of the container \u003ccode\u003edidReachEnd={(val) =\u003e console.log(val)}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n       \u003c/tr\u003e\n      \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003edidReachStart\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003efunction\u003c/td\u003e\n        \u003ctd\u003e sets if the tabs reached the start point of the container \u003ccode\u003edidReachStart={(val) =\u003e console.log(val)}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etabsScrollAmount\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e3\u003c/td\u003e\n        \u003ctd\u003estring | integer\u003c/td\u003e\n        \u003ctd\u003e sets how many tabs you want to scroll on every move \u003ccode\u003e tabsScrollAmount={3}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eanimationDuration\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e300s\u003c/td\u003e\n        \u003ctd\u003e integer\u003c/td\u003e\n        \u003ctd\u003e  sets the animation duration of the scroll when you click on the navigation buttons\n               note : this will overwirte the animationDuration value \u003ccode\u003e animationDuration={300}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n     \n  \u003ctr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003erightBtnIcon\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efeather arrow-right svg icon\u003c/td\u003e\n        \u003ctd\u003e Svelte component \u003c/td\u003e\n        \u003ctd\u003e   sets the right navitgation button icon \u003ccode\u003e  rightBtnIcon={SvelteComponent}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eleftBtnIcon\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efeather arrow-left svg icon\u003c/td\u003e\n        \u003ctd\u003e Svelte component \u003c/td\u003e\n        \u003ctd\u003e   sets the left navitgation button icon \u003ccode\u003e  leftBtnIcon={SvelteComponent}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ehideNavBtns\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003e boolean\u003c/td\u003e\n        \u003ctd\u003e  hides the navigantion button \u003ccode\u003e  hideNavBtns={false}\u003c/code\u003e  \u003c/td\u003e\n    \u003c/tr\u003e\n       \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003ehideNavBtnsOnMobile\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003etrue\u003c/td\u003e\n        \u003ctd\u003e boolean\u003c/td\u003e\n        \u003ctd\u003e  hides the navigation buttons on mobile devices  \u003c/td\u003e\n    \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eshowTabsScroll\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003e boolean\u003c/td\u003e\n        \u003ctd\u003e  shows the scroll of the tabsn  \u003c/td\u003e\n    \u003c/tr\u003e\n      \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003escrollSelectedToCenterOfView\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003e boolean\u003c/td\u003e\n        \u003ctd\u003e scroll the selected tab to the center of the view.\n        I will add examples about it in the demos' page\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\t \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003escrollSelectedToEndOfView\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003efalse\u003c/td\u003e\n        \u003ctd\u003e boolean\u003c/td\u003e\n        \u003ctd\u003e  scroll the selected tab to the end of the view.  I will add examples about it in the demos' page \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Tab's API\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eName\u003c/td\u003e\n        \u003ctd\u003eDefault\u003c/td\u003e\n        \u003ctd\u003eType\u003c/td\u003e\n        \u003ctd\u003eDescription\u003c/td\u003e\n    \u003c/tr\u003e\n     \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003eas\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003ebutton\u003c/td\u003e\n        \u003ctd\u003e string\u003c/td\u003e\n        \u003ctd\u003e  You can change the HTML element of the \n\u003ccode\u003e\n    Tab\n\u003c/code\u003e 's component by passing \u003ccode\u003eas=\"a\"\u003c/code\u003e.\nthis becomes handy if u wanted to use anchor with href or any custom element.\n\n\u003e Note : if u want to pass props or attribute to the html element u must use \u003ccode\u003easProps\u003c/code\u003e prop\n\n\u003c/td\u003e\n    \u003c/tr\u003e\n     \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003easProps\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e-\u003c/td\u003e\n        \u003ctd\u003e object\u003c/td\u003e\n        \u003ctd\u003e You can pass attributes to the element u passed with \u003ccode\u003eas\u003c/code\u003e prop.\n        For example if you want \u003ccode\u003eas=\"a\"\u003c/code\u003e and u want to pass \u003ccode\u003ehref\u003c/code\u003e as an attribute.\n        you can use \u003ccode\u003easProps\u003c/code\u003e like so \u003ccode\u003easProps={{\n\t\t\t\thref: '/#',\n\t\t\t}}\u003c/code\u003e.\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003e Note : this prop uses \u003ccode\u003e\u003csvelte:element {...asProps} /\u003e\u003c/code\u003e inisde so basically you can pass anything as prop to it!\n\n\u003c/td\u003e\n    \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003e\u003ccode\u003etabClassName\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003ccode\u003ests___tab sts___btn\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003estring\u003c/td\u003e\n        \u003ctd\u003eyou can pass a custom class to the \u003ccode\u003eTab\u003c/code\u003e component\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/table\u003e\n\u003cbr /\u003e\n\n\u003e Please let me see your reviews and if there're any features you want me to add them to the project!\n\n\u003e Dont forget to star the project on GITHUB 0_0\n\n## License\n\nMIT © [Mohammed Aliwi](https://github.com/Mood-al/react-tabs-scrollable)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmood-al%2Fsvelte-tabs-scrollable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmood-al%2Fsvelte-tabs-scrollable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmood-al%2Fsvelte-tabs-scrollable/lists"}