{"id":14978323,"url":"https://github.com/svengreb/styleguide-javascript","last_synced_at":"2025-10-28T08:32:14.427Z","repository":{"id":28472339,"uuid":"118101914","full_name":"svengreb/styleguide-javascript","owner":"svengreb","description":"An opinionated, yet universally applicable JavaScript code style guide","archived":false,"fork":false,"pushed_at":"2023-04-29T09:15:54.000Z","size":1277,"stargazers_count":22,"open_issues_count":1,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T13:34:56.582Z","etag":null,"topics":["codestyle","consistency","ecmascript","es6","eslint","eslint-config","guide","javascipt","javascript","linting","style","style-guide","styleguide","svengreb"],"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/svengreb.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":".github/codeowners","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-19T09:00:37.000Z","updated_at":"2025-01-17T11:22:45.000Z","dependencies_parsed_at":"2024-09-30T02:31:34.122Z","dependency_job_id":"662e6df8-1707-4b9d-a00e-bbc3b23553e5","html_url":"https://github.com/svengreb/styleguide-javascript","commit_stats":{"total_commits":45,"total_committers":2,"mean_commits":22.5,"dds":"0.022222222222222254","last_synced_commit":"d7ff4a9bb9eabb39128ee4c4d865ed9ba0cd03c5"},"previous_names":["arcticicestudio/styleguide-javascript"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svengreb%2Fstyleguide-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svengreb%2Fstyleguide-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svengreb%2Fstyleguide-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svengreb%2Fstyleguide-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svengreb","download_url":"https://codeload.github.com/svengreb/styleguide-javascript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238623504,"owners_count":19503051,"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","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":["codestyle","consistency","ecmascript","es6","eslint","eslint-config","guide","javascipt","javascript","linting","style","style-guide","styleguide","svengreb"],"created_at":"2024-09-24T13:57:22.970Z","updated_at":"2025-10-28T08:32:09.040Z","avatar_url":"https://github.com/svengreb.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource srcset=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/logos/projects/styleguides/javascript/heroes/dark.svg?sanitize=true\" width=\"100%\" media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\" /\u003e\n    \u003csource srcset=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/logos/projects/styleguides/javascript/heroes/light.svg?sanitize=true\" width=\"100%\" media=\"(prefers-color-scheme: dark)\" /\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/logos/projects/styleguides/javascript/heroes/dark.svg?sanitize=true\" width=\"100%\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-javascript/releases/latest\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/svengreb/styleguide-javascript.svg?style=flat-square\u0026label=Release\u0026logo=github\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-javascript/tree/main/rules\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/svengreb/styleguide-javascript.svg?style=flat-square\u0026label=Docs\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI%2BCiAgICA8cGF0aCBmaWxsPSIjZDhkZWU5IiBkPSJNMTMuNzQ2IDIuODEzYS42Ny42NyAwIDAgMC0uNTU5LS4xMzNMOCAzLjg0OGwtNS4xODgtMS4xOGEuNjY5LjY2OSAwIDAgMC0uNTcuMTMzLjY3Ny42NzcgMCAwIDAtLjI0Mi41MzF2OC4xMzNjLS4wMDguMzIuMjEuNTk4LjUyLjY2OGw1LjMzMiAxLjE5OWguMjk2bDUuMzMyLTEuMmEuNjY4LjY2OCAwIDAgMCAuNTItLjY2N1YzLjMzMmEuNjU5LjY1OSAwIDAgMC0uMjU0LS41MnpNMy4zMzIgNC4xNjhsNCAuODk4djYuNzY2bC00LS44OTh6bTkuMzM2IDYuNzY2bC00IC44OThWNS4wNjZsNC0uODk4em0wIDAiLz4KPC9zdmc%2BCg%3D%3D\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-javascript/blob/main/changelog.md\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/svengreb/styleguide-javascript.svg?style=flat-square\u0026label=Changelog\u0026logo=github\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@svengreb/eslint-config-base\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@svengreb/eslint-config-base.svg?style=flat-square\u0026label=@svengreb/eslint-config-base\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTEyIDE0SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMnpNNCAzLjMzMkEuNjcuNjcgMCAwIDAgMy4zMzIgNHY4YzAgLjM2Ny4zLjY2OC42NjguNjY4aDhhLjY3LjY3IDAgMCAwIC42NjgtLjY2OFY0QS42Ny42NyAwIDAgMCAxMiAzLjMzMnptMCAwIi8+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTggNmgyLjY2OHY2LjY2OEg4em0wIDAiLz48L3N2Zz4K\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@svengreb/eslint-config\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@svengreb/eslint-config.svg?style=flat-square\u0026label=@svengreb/eslint-config\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTEyIDE0SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMnpNNCAzLjMzMkEuNjcuNjcgMCAwIDAgMy4zMzIgNHY4YzAgLjM2Ny4zLjY2OC42NjguNjY4aDhhLjY3LjY3IDAgMCAwIC42NjgtLjY2OFY0QS42Ny42NyAwIDAgMCAxMiAzLjMzMnptMCAwIi8+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTggNmgyLjY2OHY2LjY2OEg4em0wIDAiLz48L3N2Zz4K\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@svengreb/eslint-config-typescript\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@svengreb/eslint-config-typescript.svg?style=flat-square\u0026label=@svengreb/eslint-config-typescript\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTEyIDE0SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMnpNNCAzLjMzMkEuNjcuNjcgMCAwIDAgMy4zMzIgNHY4YzAgLjM2Ny4zLjY2OC42NjguNjY4aDhhLjY3LjY3IDAgMCAwIC42NjgtLjY2OFY0QS42Ny42NyAwIDAgMCAxMiAzLjMzMnptMCAwIi8+PHBhdGggZmlsbD0iI2Q4ZGVlOSIgZD0iTTggNmgyLjY2OHY2LjY2OEg4em0wIDAiLz48L3N2Zz4K\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-javascript/actions/workflows/ci-node.yaml\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/svengreb/styleguide-javascript/ci-node.yaml?branch=main\u0026style=flat-square\u0026label=CI%20Node\u0026logoColor=eceff4\u0026colorA=4c566a\u0026logo=github-actions\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-markdown/releases/latest\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/svengreb/styleguide-markdown.svg?style=flat-square\u0026label=Markdown%20Style%20Guide\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOSIgaGVpZ2h0PSIzOSIgdmlld0JveD0iMCAwIDM5IDM5Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNEOERFRTkiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJNMS41IDEuNWgzNnYzNmgtMzZ6Ii8%2BPHBhdGggZmlsbD0iI0Q4REVFOSIgZD0iTTIwLjY4MyAyNS42NTVsNS44NzItMTMuNDhoLjU2Nmw1Ljg3MyAxMy40OGgtMS45OTZsLTQuMTU5LTEwLjA1Ni00LjE2MSAxMC4wNTZoLTEuOTk1em0tMi42OTYgMGwtMTMuNDgtNS44NzJ2LS41NjZsMTMuNDgtNS44NzJ2MS45OTVMNy45MzEgMTkuNWwxMC4wNTYgNC4xNnoiLz48L3N2Zz4%3D\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-git/releases/latest\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/release/svengreb/styleguide-git.svg?style=flat-square\u0026label=Git%20Style%20Guide\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\u0026logo=git\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eAn opinionated, yet universally applicable \u003ca href=\"https://en.wikipedia.org/wiki/JavaScript\" target=\"_blank\"\u003eJavaScript\u003c/a\u003e code style guide based on the \u003ca href=\"https://github.com/airbnb/javascript\" target=\"_blank\"\u003eAirbnb JavaScript Style Guide\u003c/a\u003e.\u003c/p\u003e\n\nEvery major open source project has its own style guide, a set of standards and conventions for the writing and design of code, documentations and assets. It is much easier to understand a large codebase when all the code in it is in a consistent style.\n\nA style guide establishes and enforces styles to improve the intelligibility and communication within the project community. It ensures consistency and enforces best practice in usage and language composition.\n\n## Getting Started\n\nThe [project documentation][7] contains chapters to learn about the [comprehensive base rule set][5] including [ECMAScript +6 (ES 2015+)][1] and [React][4] specific styles like e.g. [Higher-Order Components][6], the [component methods \u0026 properties ordering][2] and [props][3].\n\n### ESLint Configurations\n\nTo follow these rules in a project use the official extensible code linter configurations [@svengreb/eslint-config-base][19] for [ESLint][8]. The advanced [@svengreb/eslint-config][20] package provides support for specific [React][24] and [JSX A11Y][22] rules as well as compatibility integrations for other projects like [Prettier][23].\n\nTo lint projects build with [TypeScript][25], the [@svengreb/eslint-config-typescript][21] package can be extended for full compatibility with the TypeScript compiler in combination with the powerful ESLint engine. It also allows to lint mixed projects consisting of both TypeScript and JavaScript sources.\n\n## Contributing\n\nRead the [contributing guide][9] to learn about the development process and how to propose [enhancement suggestions][11] and [report bugs][10], how to [submit pull requests][15] and the project‘s [style guides][16], [branch organization][17] and [versioning][18] model.\n\nThe guide also includes information about [minimal, complete, and verifiable examples][14] and other ways to contribute to the project like [improving existing issues][13] and [giving feedback on issues and pull requests][12].\n\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource srcset=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/elements/separators/logo/footer/dark/spaced.svg?sanitize=true\" width=\"100%\" media=\"(prefers-color-scheme: light), (prefers-color-scheme: no-preference)\" /\u003e\n    \u003csource srcset=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/elements/separators/logo/footer/light/spaced.svg?sanitize=true\" width=\"100%\" media=\"(prefers-color-scheme: dark)\" /\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/svengreb/assets/main/static/images/elements/separators/logo/footer/dark/spaced.svg?sanitize=true\" width=\"100%\" /\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Copyright \u0026copy; 2016-present \u003ca href=\"https://www.svengreb.de\" target=\"_blank\"\u003eSven Greb\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/svengreb/styleguide-javascript/blob/main/license\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1.svg?style=flat-square\u0026label=License\u0026message=MIT\u0026logoColor=eceff4\u0026colorA=4c566a\u0026colorB=88c0d0\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.svengreb.de\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1.svg?style=flat-square\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABMklEQVQ4jcWQvUoDQRRGz52s5IfVIiDWPkGKFFaCIVaGdIagjcFAwICFb7DvIK6QQlNpY2UQLMQVBbEQ0SewFkGbKCQmOzaTJay7/lR+zTAf9xwuF/47Mv45rdezqWEq72v/RWZnHgqOMwDwHMfSj085JSqb6Pu38we7r18E3nqzhmYbsE11rxKsAvhDfQiSM30XYbOw57YDwfnaRl6U3ABWaMNn806H+oGPzBX3d+4UgChZiYBHYBgGsBLoKoAyhR0x9G20Zmpc4P1ZoMQDcwMNclFrdhBKv6M5WWi7ZQGtjEUn35IV4OwnVjSX/WGmKqCDDUa5rmyle3bvGFiMg3WGUsF1u0EXHoqTRMGRgkAy2eugKZrqijRLYThWANBpNDL2h3UE0J0YLJdbrfe42f/NJ0wqY7/KcXKPAAAAAElFTkSuQmCC\u0026label=lovely%20crafted%20in\u0026message=Germany\u0026colorA=4c566a\u0026colorB=88c0d0\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n[1]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/ecmascript_6+_styles.md\n[2]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/react/ordering.md#component-methods-and-properties\n[3]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/react/props.md\n[4]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/react/index.md\n[5]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/index.md\n[6]: https://github.com/svengreb/styleguide-javascript/blob/main/rules/react/higher_order_components.md\n[7]: https://github.com/svengreb/styleguide-javascript/tree/main/rules\n[8]: https://eslint.org\n[9]: https://github.com/svengreb/.github/blob/main/contributing.md\n[10]: https://github.com/svengreb/.github/blob/main/contributing.md#bug-reports\n[11]: https://github.com/svengreb/.github/blob/main/contributing.md#enhancement-suggestions\n[12]: https://github.com/svengreb/.github/blob/main/contributing.md#feedback\n[13]: https://github.com/svengreb/.github/blob/main/contributing.md#improve-issues\n[14]: https://github.com/svengreb/.github/blob/main/contributing.md#mcve\n[15]: https://github.com/svengreb/.github/blob/main/contributing.md#pull-requests\n[16]: https://github.com/svengreb/.github/blob/main/contributing.md#style-guides\n[17]: https://github.com/svengreb/.github/blob/main/contributing.md#branch-organization\n[18]: https://github.com/svengreb/.github/blob/main/contributing.md#versioning\n[19]: https://github.com/svengreb/styleguide-javascript/tree/main/packages/@svengreb/eslint-config-base\n[20]: https://github.com/svengreb/styleguide-javascript/tree/main/packages/@svengreb/eslint-config\n[21]: https://github.com/svengreb/styleguide-javascript/tree/main/packages/@svengreb/eslint-config-typescript\n[22]: https://www.npmjs.com/package/eslint-plugin-jsx-a11y\n[23]: https://prettier.io\n[24]: https://react.dev\n[25]: https://www.typescriptlang.org\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvengreb%2Fstyleguide-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvengreb%2Fstyleguide-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvengreb%2Fstyleguide-javascript/lists"}