PRs are not the only form of contributing. Reporting issues is also important and helps a lot. And, like PRs, issues that don't match the project's goals or standards of quality will not be accepted.
Don't be afraid! We take it upon ourselves to help people contribute. You might get follow-up questions or asked for more information when you submit an issue. It's not productive to close issues just because we don't like them.
For feature requests, prefer Discussions instead of Issues, unless the feature is directly in our RFP or Concepts pages. Otherwise, once a feature is agreed upon and there is interest in implementing it, issues can be created.
missing.css is developed on a "free to use, pay to demand" basis. Contributors are not beholden to users and can work on whatever they like. If you need a specific feature or bugfix for your business, consider putting up a bounty. (Not recommended: Making an unsolicited donation and then demanding specific work. That's not how you buy something).
You will need Deno to build Missing.css.
Everything else will be downloaded and cached indefinitely by Deno --
if you plan to go offline for a while, consider doing a full build of everything
(deno task build
) to cache dependencies.
-
Start a development server:
deno task serve
This will serve the missing.css website, which uses the CSS directly from source.
-
Build all of missing.css (CSS and JS):
deno task build
-
Build just the CSS:
deno task css
-
Build just the JS:
deno task js
-
Build the website:
deno task www
You'll notice that we don't have a master
or main
branch. Instead, the
dev
branch is the default. This way, the default place to open a pull request
is the right one.
The prod
branch will contain the last published version of the code.
Changes to the website and docs can also be made directly against the
prod
branch.
That's it! We don't expect to use feature branches that often, instead working
directly on dev
because CSS is hard to merge.
To publish a new release:
-
Make sure there is a changelog in
www/releases/
:cat >www/releases/4.2.0.md <<EOF --- release: 4.2.0 --- # Changelog - **Breaking:**{.color.warn} Removed everything EOF
Some older changelogs have a list of
artifacts
-- this is a leftover from when we used our own distribution instead of npm. -
Create a git tag matching the regex
^v\d+\.\d+\.\d+
(i.e.:v1.2.2
,v1.3.3-special-build-1
, NOT1.1.2
,v3
,v1.2-alpha
). It's important that the git tag has the correct format since we use the regex above in code.
You can note your thoughts and leave notes for maintainers in the dev-notes
file. The structure is:
YYYY-MM-DD
Your notes here
-- your-github-username
Leave two empty lines between notes.
-
src/
-- the CSS source code. This is processed with Lightning CSS. -
www/
-- the project website, built with Lumedemos/
-- demo pages. These should have aname
specified in the frontmatter. They will be listed in the demo page (../demos.md
).releases/
-- release notes.
-
dist/
-- build results. This is also where the built website is.missing.css
-- unminified dev buildmissing.min.css
-- minifiedmissing.min.css.br
-- minified + gzip compressedmissing.min.css.gz
-- minified + brotli compressedmissing-prism.css
(&.min.css
, etc.) -- Prism themearchive
-- past releases of the above