{"id":13839276,"url":"https://github.com/awerlang/angular-responsive-tables","last_synced_at":"2026-02-21T02:01:22.283Z","repository":{"id":31777804,"uuid":"35344171","full_name":"awerlang/angular-responsive-tables","owner":"awerlang","description":"Make your HTML tables look great on every device","archived":false,"fork":false,"pushed_at":"2019-04-10T18:02:02.000Z","size":302,"stargazers_count":71,"open_issues_count":4,"forks_count":19,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-02-16T14:17:14.719Z","etag":null,"topics":["angularjs","angularjs-directives","css","html-table","mobile","mobile-web","responsive-design","table"],"latest_commit_sha":null,"homepage":"","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/awerlang.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}},"created_at":"2015-05-09T20:29:03.000Z","updated_at":"2026-02-16T01:50:06.000Z","dependencies_parsed_at":"2022-08-30T16:11:14.302Z","dependency_job_id":null,"html_url":"https://github.com/awerlang/angular-responsive-tables","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/awerlang/angular-responsive-tables","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awerlang%2Fangular-responsive-tables","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awerlang%2Fangular-responsive-tables/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awerlang%2Fangular-responsive-tables/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awerlang%2Fangular-responsive-tables/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awerlang","download_url":"https://codeload.github.com/awerlang/angular-responsive-tables/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awerlang%2Fangular-responsive-tables/sbom","scorecard":{"id":218974,"data":{"date":"2025-08-11","repo":{"name":"github.com/awerlang/angular-responsive-tables","commit":"30990b13a09126a62468925b1bd58d4e5aa60f0d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 1 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T02:08:31.413Z","repository_id":31777804,"created_at":"2025-08-17T02:08:31.413Z","updated_at":"2025-08-17T02:08:31.413Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29671513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"online","status_checked_at":"2026-02-21T02:00:07.432Z","response_time":107,"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":["angularjs","angularjs-directives","css","html-table","mobile","mobile-web","responsive-design","table"],"created_at":"2024-08-04T17:00:17.623Z","updated_at":"2026-02-21T02:01:22.264Z","avatar_url":"https://github.com/awerlang.png","language":"JavaScript","readme":"# angular-responsive-tables\n\nMake your HTML tables look great on every device.\nCompatible with **AngularJS 1.3.4+**.\n\n[Live Demo](http://awerlang.github.io/angular-responsive-tables/examples/)\n\n## Why?\n\nCurrently, browsers for mobile devices like smartphones doesn't do anything to have a proper presentation of tables,\n and then scrollbars will show up and ruin your design.\n\nIn the search of a solution to this problem I have found many different approaches. Some of them\n still rely on horizontal scrollbars. While I believe this layout could be useful for some use cases,\n I felt that a default solution should avoid horizontal scrollbars entirely. Then I came up with this\n highly reusable directive.\n\nAll this work is based on the following assumptions:\n\n* If it is *flexible*, then it would solve most problems, even ones not aimed by the library author's;\n* Focusing on the task of *adding responsiveness*, in order to accomplish a greater objective (*easy to use tabular data*);\n* Do work with a *standard HTML table*, not requiring any extraneous markup;\n* Do *not change default tabular layout* unless a smaller display is detected;\n* Provide *convenience* without sacrificing flexibility;\n* By keeping *code base simple*, it is easier to reason about and evolve;\n* By fully covering with tests, it can *evolve without introducing bugs*.\n\n## Features\n\n* Angular native implementation compatible with 1.3.4+;\n* Keep things DRY;\n* Supports static and dynamic (ng-repeat) rows;\n* Supports conditionally shown (ng-if) columns;\n* Supports dynamic headers (ng-repeat);\n* Supports nested tables (responsive or not in their own right);\n* Easy to apply any style on top of it;\n* Works with any base CSS framework;\n* Should integrate seamlessly with any table component you might choose to use.\n\n### Future Work\n\n* Choose what columns to show/hide according to a given screen resolution;\n* Choose when it would be best to hide columns or collapse all columns;\n* Define a header and/or custom template for collapsed columns/row;\n* Allow collapse/expand column details.\n\n## Usage\n\n    \u003ctable wt-responsive-table\u003e\n        \u003ctr\u003e\n            \u003cth\u003eColumn 1\u003c/th\u003e\n            \u003cth\u003eColumn 2\u003c/th\u003e\n            \u003cth\u003eColumn 3\u003c/th\u003e\n            \u003cth\u003eColumn 4\u003c/th\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n            \u003ctd\u003e...\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/table\u003e\n\n### Directives\n\n#### wt-responsive-table\n\n * table: wt-responsive-table\n   * td: responsive-omit-title: title should be ommited\n   * td: responsive-omit-if-empty: no row for empty cells\n   * td: data-title: use to override the header for a given row/cell\n\n## Installation\n\n### npm\n\n    npm install --save angular-responsive-tables\n\n### Bower\n\n    bower install angular-responsive-tables --save\n\n### Application\n\n#### HTML\n\n    \u003clink rel=\"stylesheet\" href=\"release/angular-responsive-tables.min.css\"\u003e\n    \u003cscript type=\"text/javascript\" src=\"release/angular-responsive-tables.min.js\"\u003e\u003c/script\u003e\n\n#### JavaScript\n\n    var app = angular.module('app', ['wt.responsive']);\n\n## Special cases\n\n### Header doesn't appear for a row / need to override header\n\nIt's possible to override a header with a `data-title` attribute:\n\n    \u003ctr\u003e\n        \u003ctd data-title=\"column 1\"\u003etom\u003c/td\u003e\n        \u003ctd data-title=\"column 2\"\u003ejerry\u003c/td\u003e\n    \u003c/tr\u003e\n\n### Changes to header text doesn't reflect in responsive mode\n\nThis is by design. To avoid expensive digest cycles only the content from the first digest cycle is used.\nThere are no watchers being setup.\n\n### Dynamic column names\n\nWhen loading column names with an asynchronous task, that is, column names are not available when first compiling the table element, rows in responsive mode won't have headers even after the task completes.\n\nTo avoid this problem, use an `ng-if` to conditionally present the element on screen.\n\n    \u003ctable wt-responsive-table ng-if=\"columnNames \u0026\u0026 columnNames.length\"\u003e\n\n### IE9 responsive hack\n\nBecause IE9 doesn't handle correctly a `display` CSS rule for `\u003ctd\u003e`, if you need to support it, you can use the following style, only for IE9:\n\n```css\n\u003c!--[if IE 9]\u003e\n\u003cstyle\u003e\n/* rules for IE9 only */\n.responsive {\n    overflow: hidden;\n}\n.responsive td:nth-child(odd), .responsive td:nth-child(even) {\n    float: left;\n    width: 100%;\n}\n\u003c/style\u003e\n\u003c![endif]--\u003e\n```\n\n## Credits\n\nCSS based on original work by Chris Coyier (http://css-tricks.com/responsive-data-tables/). In this article, he covers approaches to responsive tables. I modified it to work around CSS specificity and to keep things DRY.\n\n## License\n\nMIT\n","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawerlang%2Fangular-responsive-tables","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawerlang%2Fangular-responsive-tables","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawerlang%2Fangular-responsive-tables/lists"}