{"id":13808660,"url":"https://github.com/mohsen77sk/angular-touch-keyboard","last_synced_at":"2026-02-24T20:06:18.560Z","repository":{"id":50481983,"uuid":"519218741","full_name":"mohsen77sk/angular-touch-keyboard","owner":"mohsen77sk","description":"Virtual Keyboard for Angular applications.","archived":false,"fork":false,"pushed_at":"2026-02-22T15:15:31.000Z","size":2754,"stargazers_count":62,"open_issues_count":4,"forks_count":23,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-02-22T20:22:03.886Z","etag":null,"topics":["angular","angular-keyboard","angular-material","keyboard","onscreen-keyboard","touch-keyboard","virtual-keyboard"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/mohsen77sk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-29T13:07:43.000Z","updated_at":"2026-02-22T15:14:13.000Z","dependencies_parsed_at":"2024-06-19T03:03:05.692Z","dependency_job_id":"c004a3aa-6abe-462c-ac11-c4ec1c6a876c","html_url":"https://github.com/mohsen77sk/angular-touch-keyboard","commit_stats":{"total_commits":40,"total_committers":2,"mean_commits":20.0,"dds":0.125,"last_synced_commit":"9e89ce8049cfb26504ce333b603728d3aece3486"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/mohsen77sk/angular-touch-keyboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohsen77sk%2Fangular-touch-keyboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohsen77sk%2Fangular-touch-keyboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohsen77sk%2Fangular-touch-keyboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohsen77sk%2Fangular-touch-keyboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohsen77sk","download_url":"https://codeload.github.com/mohsen77sk/angular-touch-keyboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohsen77sk%2Fangular-touch-keyboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29755550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T20:43:23.829Z","status":"ssl_error","status_checked_at":"2026-02-23T20:43:23.422Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["angular","angular-keyboard","angular-material","keyboard","onscreen-keyboard","touch-keyboard","virtual-keyboard"],"created_at":"2024-08-04T01:01:48.376Z","updated_at":"2026-02-24T20:06:18.555Z","avatar_url":"https://github.com/mohsen77sk.png","language":"TypeScript","readme":"# AngularTouchKeyboard\n\nAn Angular touch keyboard component that provides a customizable on-screen keyboard for input elements.\nFully compatible with Angular, Angular Material, and Ionic Framework.\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![npm version](https://badge.fury.io/js/ngx-touch-keyboard.svg)](http://badge.fury.io/js/ngx-touch-keyboard) [![Build Status](https://github.com/mohsen77sk/angular-touch-keyboard/workflows/main/badge.svg)](https://github.com/mohsen77sk/angular-touch-keyboard/actions)\n\n![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/angularTouchKeyboard.png)\n\n## Features\n\n- 📱 Responsive virtual keyboard\n- 🌐 Multiple locale support\n- 🎯 Flexible positioning\n- 🖥️ Full-screen mode support\n- 🎨 Customizable appearance\n- Ⓜ️ AngularMaterial support\n- ⏺️ Ionic Framework support\n- ⌨️ Smart native keyboard handling on mobile devices\n\n## Demo\n\n[https://mohsen77sk.github.io/angular-touch-keyboard/](https://mohsen77sk.github.io/angular-touch-keyboard/)\n\n## Installation\n\n```bash\nnpm install @angular/cdk ngx-touch-keyboard\n```\n\n## Compatibility\n\nThe version of this library is synchronized with the major version of Angular to ensure compatibility.\n\n| Angular Version | Package Version |\n| --------------- | --------------- |\n| \u003e= 18.0.0       | 4.x             |\n| \u003e= 16.0.0       | 3.x             |\n| \u003e= 14.0.0       | 2.x             |\n\n## Basic Usage\n\nImport the `NgxTouchKeyboardModule` in your app.module.ts:\n\n```typescript\nimport { NgxTouchKeyboardModule } from 'ngx-touch-keyboard';\n\n@NgModule({\n  imports: [\n    NgxTouchKeyboardModule\n  ],\n})\nexport class AppModule { }\n```\n\nIf you want to set the custom locale, provide `NGX_TOUCH_KEYBOARD_LOCALE` by custom locale\n\n- default locale is `enUS`\n\n```typescript\nimport { NGX_TOUCH_KEYBOARD_LOCALE, faIR } from 'ngx-touch-keyboard';\n\n@NgModule({\n  providers: [\n    { provide: NGX_TOUCH_KEYBOARD_LOCALE, useValue: faIR }\n  ],\n})\nexport class AppModule { }\n```\n\nAdd the directive to your input elements:\n\nBasic usage\n\n```html\n\u003cinput ngxTouchKeyboard [(ngxTouchKeyboardOpen)]=\"isOpen\"\u003e\n```\n\nOpen keyboard on input focus\n\n```html\n\u003cinput ngxTouchKeyboard ngxTouchKeyboardOpenOnFocus\u003e\n```\n\nBasic usage in Ionic\n\n```html\n\u003cion-input ngxTouchKeyboard [(ngxTouchKeyboardOpen)]=\"isOpen\"\u003e\u003c/ion-input\u003e\n```\n\n## API Reference\n\n### Directives\n\n#### NgxTouchKeyboard\n\n```typescript\n@Directive({\n  selector: `input[ngxTouchKeyboard],\n             textarea[ngxTouchKeyboard],\n             ion-input[ngxTouchKeyboard],\n             ion-textarea[ngxTouchKeyboard]`,\n})\n```\n\n### Inputs\n\n| Name                              | Type                     | Default | Description                                    |\n| --------------------------------- | ------------------------ | ------- | ---------------------------------------------- |\n| `ngxTouchKeyboardOpen`            | `boolean`                | `false` | Controls the visibility of the keyboard        |\n| `ngxTouchKeyboardOpenOnFocus`     | `boolean`                | `false` | Open the visibility of the keyboard On focus   |\n| `ngxTouchKeyboardLocale`          | `Locale`                 | `enUS`  | Sets the keyboard locale                       |\n| `ngxTouchKeyboardFullScreen`      | `boolean`                | `false` | Enables full-screen mode                       |\n| `ngxTouchKeyboardDebug`           | `boolean`                | `false` | Enables debug mode                             |\n| `ngxConnectedTouchKeyboardOrigin` | `NgxTouchKeyboardOrigin` | `null`  | Sets a custom origin for the keyboard position |\n\n### Methods\n\n- `openPanel()`: Opens the keyboard panel\n- `closePanel()`: Closes the keyboard panel\n- `togglePanel()`: Toggles the keyboard panel visibility\n\n## Advanced Usage\n\n### Custom locale\n\n```html\n\u003cinput ngxTouchKeyboard [ngxTouchKeyboardLocale]=\"faIR\"\u003e\n```\n\n### Full-Screen Mode\n\n```html\n\u003cinput ngxTouchKeyboard [ngxTouchKeyboardFullScreen]=\"true\"\u003e\n```\n\n### Custom Position Origin\n\n```html\n\u003cdiv ngxTouchKeyboardOrigin #origin=\"ngxTouchKeyboardOrigin\"\u003e\n  \u003cinput ngxTouchKeyboard [ngxConnectedTouchKeyboardOrigin]=\"origin\"\u003e\n\u003c/div\u003e\n```\n\n## Localization\n\nAngularTouchKeyboard is localized in 8 keyboard-specific locales:\n\n* `en-US` English (United States) (default)\n* `en-UK` English (United Kingdom)\n* `es-ES` Spanish (Spain)\n* `fa-IR` Persian (Iran)\n* `he-IL` Hebrew (Israel)\n* `ka-GE` Georgian (Georgia)\n* `ru-RU` Russian (Russia)\n* `sv-SE` Swedish (Sweden)\n\n## Themes\n\n### Built-in themes\n\n* `default`: white theme\n* `dark`: dark theme\n\nYou must put the class `dark` in the body to use the `dark` theme.\n\n### Create custom theme\n\nTo customize the theme, you need to use css variables.\n\n| Name                            | Description                           |\n| ------------------------------- | ------------------------------------- |\n| `--tk-color-text`               | color of text button                  |\n| `--tk-background`               | color of background panel             |\n| `--tk-background-button`        | color of background basic button      |\n| `--tk-background-button-fn`     | color of background functional button |\n| `--tk-background-button-active` | color of background active button     |\n\n## Layouts\n\nDepends on attribute inputmode, the keyboard layout is changed.\n\n| inputmode             | Screenshot                                                                                               |\n| --------------------- | -------------------------------------------------------------------------------------------------------- |\n| `inputmode='text'`    | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/text.png)    |\n| `inputmode='search'`  | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/search.png)  |\n| `inputmode='email'`   | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/email.png)   |\n| `inputmode='url'`     | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/url.png)     |\n| `inputmode='numeric'` | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/number.png)  |\n| `inputmode='decimal'` | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/decimal.png) |\n| `inputmode='tel'`     | ![angular touch keyboard](https://mohsen77sk.github.io/angular-touch-keyboard/assets/images/tel.png)     |\n\n## Development\n\nThe most useful commands for development are:\n\n* `npm run start` to start a development server\n* `npm run build-demo` to build the demo locally (it will be published automatically by GitHub Actions)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\n[The MIT License (MIT)](LICENSE)\n","funding_links":[],"categories":["Third Party Components"],"sub_categories":["Keyboard Mouse"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohsen77sk%2Fangular-touch-keyboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohsen77sk%2Fangular-touch-keyboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohsen77sk%2Fangular-touch-keyboard/lists"}