Skip to content

Commit 88f9022

Browse files
committed
chore: initial commit
0 parents  commit 88f9022

19 files changed

+4761
-0
lines changed

.all-contributorsrc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"projectName": "css-homogenizer",
3+
"projectOwner": "kripod",
4+
"repoType": "github",
5+
"repoHost": "https://github.com",
6+
"commitConvention": "angular",
7+
"contributorsPerLine": 7,
8+
"skipCi": true,
9+
"contributors": [
10+
{
11+
"login": "kripod",
12+
"name": "Kristóf Poduszló",
13+
"avatar_url": "https://avatars3.githubusercontent.com/u/14854048?v=4",
14+
"profile": "https://github.com/kripod",
15+
"contributions": [
16+
"maintenance",
17+
"code",
18+
"doc",
19+
"ideas",
20+
"infra"
21+
]
22+
}
23+
],
24+
"files": [
25+
"README.md"
26+
]
27+
}

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
indent_style = tab
5+
indent_size = 2
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.yml]
12+
indent_style = space
13+
14+
[*.md]
15+
trim_trailing_whitespace = false

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.log*
2+
.DS_Store
3+
node_modules/

.prettierrc.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"useTabs": true,
3+
"trailingComma": "all",
4+
"overrides": [
5+
{
6+
"files": "*.md",
7+
"options": {
8+
"useTabs": false,
9+
"trailingComma": "none"
10+
}
11+
}
12+
]
13+
}

.travis.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
language: node_js
2+
node_js: lts/*
3+
4+
script:
5+
- npm run format -- --check --write false

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [1.0.0] - 2020-08-18
11+
12+
### Added
13+
14+
- Initial release.
15+
16+
[unreleased]: https://github.com/kripod/css-homogenizer/compare/v1.0.0...HEAD
17+
[1.0.0]: https://github.com/kripod/css-homogenizer/releases/tag/v1.0.0

CODE_OF_CONDUCT.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
- Demonstrating empathy and kindness toward other people
21+
- Being respectful of differing opinions, viewpoints, and experiences
22+
- Giving and gracefully accepting constructive feedback
23+
- Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
- Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
- The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
- Trolling, insulting or derogatory comments, and personal or political attacks
33+
- Public or private harassment
34+
- Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
- Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.0, available at
119+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at
128+
https://www.contributor-covenant.org/translations.

CONTRIBUTING.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Contributing to css-homogenizer
2+
3+
Thank you for taking the time to contribute! Guidelines below are meant to help you along the way. All contributions are welcome, including ideas, tweaks and more.
4+
5+
## Code of Conduct
6+
7+
This project is governed by the [Contributor Covenant Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
8+
9+
## Proposing a change
10+
11+
Before making a non-trivial change, please discuss it via [issues].
12+
13+
## Development process
14+
15+
Please keep the scope of each pull request to **one** specific feature or fix.
16+
17+
### Workflow
18+
19+
0. Assign related [issues] to yourself
20+
1. Clone a fork of the `main` branch
21+
2. Before pushing, execute `npm run format` to fix stylistic issues using [Prettier]
22+
3. Open a new pull request, [referencing corresponding issues] if available
23+
24+
## License
25+
26+
As a collaborator, you agree to license your contributions under the project's [MIT license](./LICENSE).
27+
28+
[issues]: https://github.com/kripod/css-homogenizer/issues
29+
[prettier]: https://prettier.io/
30+
[referencing corresponding issues]: https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2020 Kristóf Poduszló
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<p align="center">
2+
<img alt="css-homogenizer" src="https://raw.githubusercontent.com/kripod/css-homogenizer/main/assets/logo.svg?sanitize=true" width="524">
3+
</p>
4+
5+
<p align="center">
6+
Base CSS encouraging proper HTML semantics and the use of custom design tokens
7+
</p>
8+
9+
<p align="center">
10+
<a href="https://www.npmjs.com/package/css-homogenizer"><img alt="npm" src="https://img.shields.io/npm/v/css-homogenizer"></a>
11+
</p>
12+
13+
## Backstory
14+
15+
Browsing through the issues of [CSS Remedy](https://github.com/jensimmons/cssremedy), I came across an important observation by Jen Simmons:
16+
17+
> Why don't people use `<fieldset>` far more — instead of divs in their forms?
18+
>
19+
> Perhaps it's because fieldset comes with ugly default styling.
20+
21+
This made me question common [HTML rendering suggestions](https://html.spec.whatwg.org/multipage/rendering.html). Each design is different, so **there isn't a single set of sensible defaults** for every website.
22+
23+
Style normalization is crucial for a consistent user experience among browsers. With the emergence of various design systems, however, **CSS normalizers and resets should coexist and complement each other.**
24+
25+
Catering for the needs of token-based theming systems, this project was born.
26+
27+
## Usage
28+
29+
1. Install the library and a normalizer with your package manager (or use [a CDN](https://www.jsdelivr.com/package/npm/css-homogenizer)):
30+
31+
```shell
32+
npm install css-homogenizer modern-normalize
33+
```
34+
35+
_Using [modern-normalize](https://github.com/sindresorhus/modern-normalize) is optional but recommended to fix common browser inconsistencies._
36+
37+
2. Include the following global styles **in order, before any custom CSS:**
38+
39+
```js
40+
import "modern-normalize/modern-normalize.css";
41+
import "css-homogenizer/reset.css";
42+
import "css-homogenizer/opinionated-base.css";
43+
```
44+
45+
Embed the snippet or parts of it according to your framework/workflow documentation.
46+
47+
Plain `<link>` tags may also be used, but make sure to review [performance guidelines](https://csswizardry.com/2018/11/css-and-network-performance/) carefully.
48+
49+
## What's included?
50+
51+
### [`reset.css`](./reset.css)
52+
53+
Nullifies spacings, borders and several typography-related settings:
54+
55+
- The default line height is reduced to match each element's own font size.
56+
- Heading (`h1`–`h6`), `th` and `address` elements inherit their font properties and text alignment from parents.
57+
- Lists (`ul`, `ol`, `menu`) are unstyled to promote proper HTML semantics over misleading visuals.
58+
59+
Form element styles are kept intact, maintaining the native look on each platform. Obsolete and deprecated HTML elements are ignored, as their usage is strongly discouraged.
60+
61+
### [`opinionated-base.css`](./opinionated-base.css)
62+
63+
Provides a minimalistic set of generally useful rules. Please refer to the file's inline comments for further details.
64+
65+
## Browser support
66+
67+
- Latest Chrome
68+
- Latest Firefox
69+
- Latest Safari
70+
71+
## Contributors
72+
73+
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
74+
75+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
76+
<!-- prettier-ignore-start -->
77+
<!-- markdownlint-disable -->
78+
<table>
79+
<tr>
80+
<td align="center"><a href="https://github.com/kripod"><img src="https://avatars3.githubusercontent.com/u/14854048?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kristóf Poduszló</b></sub></a><br /><a href="#maintenance-kripod" title="Maintenance">🚧</a> <a href="https://github.com/kripod/record-like-deep-assign/commits?author=kripod" title="Code">💻</a> <a href="https://github.com/kripod/record-like-deep-assign/commits?author=kripod" title="Documentation">📖</a> <a href="#ideas-kripod" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-kripod" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
81+
</tr>
82+
</table>
83+
84+
<!-- markdownlint-enable -->
85+
<!-- prettier-ignore-end -->
86+
87+
<!-- ALL-CONTRIBUTORS-LIST:END -->
88+
89+
## Acknowledgements
90+
91+
This project was primarily inspired by [Reset CSS](https://meyerweb.com/eric/tools/css/reset/), [sanitize.css](https://github.com/csstools/sanitize.css) and [CSS Remedy](https://github.com/jensimmons/cssremedy). It wouldn't have been possible without the long-standing efforts of the authors behind those predecessors.
92+
93+
The logo's test tube emoji is courtesy of [Twemoji](https://twemoji.twitter.com/) and the font in use is [Lobster](https://fonts.google.com/specimen/Lobster).

0 commit comments

Comments
 (0)