{"id":15046837,"url":"https://github.com/muhammadmabrouk/webrouk-custom-select","last_synced_at":"2026-02-16T22:01:59.397Z","repository":{"id":138319913,"uuid":"455892993","full_name":"MuhammadMabrouk/webrouk-custom-select","owner":"MuhammadMabrouk","description":"Webrouk Custom Select is a lightweight native JavaScript web component for custom select element.","archived":false,"fork":false,"pushed_at":"2023-12-31T19:56:32.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-26T19:36:19.346Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MuhammadMabrouk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-05T14:32:21.000Z","updated_at":"2024-04-16T14:08:51.000Z","dependencies_parsed_at":"2023-12-31T20:42:16.742Z","dependency_job_id":null,"html_url":"https://github.com/MuhammadMabrouk/webrouk-custom-select","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MuhammadMabrouk/webrouk-custom-select","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadMabrouk%2Fwebrouk-custom-select","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadMabrouk%2Fwebrouk-custom-select/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadMabrouk%2Fwebrouk-custom-select/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadMabrouk%2Fwebrouk-custom-select/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MuhammadMabrouk","download_url":"https://codeload.github.com/MuhammadMabrouk/webrouk-custom-select/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MuhammadMabrouk%2Fwebrouk-custom-select/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279012515,"owners_count":26085134,"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-12T02:00:06.719Z","response_time":53,"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":[],"created_at":"2024-09-24T20:53:38.658Z","updated_at":"2025-10-12T18:37:36.623Z","avatar_url":"https://github.com/MuhammadMabrouk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webroukCustomSelect\n\nWebrouk Custom Select is a lightweight native JavaScript web component for custom select element.\n\n- No dependencies.\n- Lightweight.\n- Fast search/filtering.\n- Icon prefixes on select options.\n- Keyboard navigation (Tab/Shift-Tab).\n- Right-to-left support.\n\n### Demo\n---\n[CodePen Example](https://codepen.io/muhammad_mabrouk/full/qBVqEmN/)\n\n### Installation\n---\nUse [NPM](https://www.npmjs.com/package/webrouk-custom-select/) to download and install it directly in to your project\n\n```sh\n$ npm install webrouk-custom-select --save\n```\n\nor include js file manually\n\n```html\n\u003c!-- webrouk-custom-select component file --\u003e\n\u003cscript src=\"webrouk-custom-select.js\"\u003e\u003c/script\u003e\n```\n\n### Usage\n---\nUsing webroukCustomSelect is simple.\n\n```html\n\u003cwebrouk-custom-select search-placeholder=\"Search...\" no-results=\"No results found...\"\u003e\n    \u003cselect\u003e\n      \u003coption value=\"\" data-icon-url=\"https://picsum.photos/40/30\"\u003eSelect an option\u003c/option\u003e\n      \u003coption value=\"item-01\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 01\u003c/option\u003e\n      \u003coption value=\"item-02\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 02\u003c/option\u003e\n      \u003coption value=\"item-03\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 03\u003c/option\u003e\n      \u003coption value=\"item-04\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 04\u003c/option\u003e\n      \u003coption value=\"item-05\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 05\u003c/option\u003e\n      \u003coption value=\"item-06\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 06\u003c/option\u003e\n      \u003coption value=\"item-07\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 07\u003c/option\u003e\n      \u003coption value=\"item-08\" data-icon-url=\"https://picsum.photos/40/30\"\u003eOption item 08\u003c/option\u003e\n    \u003c/select\u003e\n\u003c/webrouk-custom-select\u003e\n```\n\n### Options\n| Option | Type | Description | Default |\n| ----------- |    :----:   | ----------- |    :----:   |\n| search-placeholder | `string` | The value of the search input's placeholder | `Search...` |\n| no-results | `string` | The text that is shown when a user's search has returned no results | `No results found...` |\n| data-icon-url | `string` | The url value of the select option icon (applied to the option elements) | `null` |\n\n### Style Customization\n---\nExpected CSS Variables from inside the component (optional).\n\n```css\nwebrouk-custom-select {\n  --w-primary-color: hsl(218, 95%, 54%);\n  --w-bg-one: hsl(225, 6%, 13%);\n  --w-bg-two: hsl(225, 6%, 18%);\n  --w-inputs-bg: hsl(225, 6%, 15%);\n  --w-inputs-disabled-bg: hsl(225, 6%, 17%);\n  --w-text-color: hsl(225, 6%, 63%);\n  --w-border-color: hsl(225, 6%, 21%);\n  --w-success-color: hsl(135, 60%, 40%);\n  --w-danger-color: hsl(355, 70%, 55%);\n  --w-height-size: 48px;\n  --w-radius-size: 0.63rem;\n}\n```\n\n### Styleable Component Parts\n---\n- root\n- select-styled\n- icon\n- search\n- options-list\n- no-results\n- option-item\n\n#### Example:\n\n```css\nwebrouk-custom-select::part(root) { /* some styles ... */ }\n\nwebrouk-custom-select::part(select-styled) { /* some styles ... */ }\n\nwebrouk-custom-select::part(icon) { /* some styles ... */ }\n\nwebrouk-custom-select::part(search) { /* some styles ... */ }\n\nwebrouk-custom-select::part(options-list) { /* some styles ... */ }\n\nwebrouk-custom-select::part(no-results) { /* some styles ... */ }\n\nwebrouk-custom-select::part(option-item) { /* some styles ... */ }\n```\n\n### License\n-------\nwebroukCustomSelect is licensed [MIT](https://choosealicense.com/licenses/mit/).\nIt can be used for free and without any attribution, in any personal or commercial project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadmabrouk%2Fwebrouk-custom-select","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuhammadmabrouk%2Fwebrouk-custom-select","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuhammadmabrouk%2Fwebrouk-custom-select/lists"}