{"id":46654844,"url":"https://github.com/benfuddled/sheetloaf","last_synced_at":"2026-03-08T07:32:15.303Z","repository":{"id":42022568,"uuid":"277211387","full_name":"benfuddled/sheetloaf","owner":"benfuddled","description":"📃🍞 Fresh-made stylesheets for the whole family","archived":false,"fork":false,"pushed_at":"2025-06-11T21:20:22.000Z","size":11414,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-29T18:54:48.681Z","etag":null,"topics":["postcss","sass"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benfuddled.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-07-05T01:28:58.000Z","updated_at":"2025-01-19T01:54:16.000Z","dependencies_parsed_at":"2023-02-19T01:45:47.797Z","dependency_job_id":"8d1b546c-5fd2-4c1d-b179-8658a9afa209","html_url":"https://github.com/benfuddled/sheetloaf","commit_stats":{"total_commits":189,"total_committers":4,"mean_commits":47.25,"dds":0.5079365079365079,"last_synced_commit":"923e874166cb06fed3ebd91001cb71d33a3bb6ea"},"previous_names":["benfuddled/sheetloaf","cheddarbread/sheetloaf","benjrichardson/sheetloaf"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/benfuddled/sheetloaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benfuddled%2Fsheetloaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benfuddled%2Fsheetloaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benfuddled%2Fsheetloaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benfuddled%2Fsheetloaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benfuddled","download_url":"https://codeload.github.com/benfuddled/sheetloaf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benfuddled%2Fsheetloaf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30248892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"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":["postcss","sass"],"created_at":"2026-03-08T07:32:14.776Z","updated_at":"2026-03-08T07:32:15.295Z","avatar_url":"https://github.com/benfuddled.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"📃🍞 Fresh-made stylesheets for the whole family\n\nAn alternative to postcss-cli for sass users. Compile sass files to CSS and transform using postcss, all in one command.\n\n## Installation\n\nUsing npm (or your package manager of choice):\n\n```\nnpm install sheetloaf\n```\n\nSheetloaf also requires a peer dependency of postcss, so go ahead and run:\n\n```\nnpm install postcss\n```\n\n## Usage\n\nWith a few exceptions, efforts have been made to match the postcss-cli option interface. See \"Sass Options\" for differences.\n\n```\nUsage:\n  sheetloaf [input.scss] [OPTIONS] [-o|--output output.css] [--watch|-w]\n  sheetloaf \u003cinput.scss\u003e... [OPTIONS] --dir \u003coutput-directory\u003e [--watch|-w]\n  sheetloaf \u003cinput-directory\u003e [OPTIONS] --dir \u003coutput-directory\u003e [--watch|-w]\n  sheetloaf \u003cinput-glob-pattern\u003e [OPTIONS] --dir \u003coutput-directory\u003e [--watch|-w]\n\nBasic options:\n  -o, --output   Output file                                            [string]\n  -d, --dir      Output directory                                       [string]\n  -w, --watch    Watch files for changes and recompile as needed       [boolean]\n\nOptions for use without a postcss config file:\n  -u, --use      List of postcss plugins to use                          [array]\n\nOptions for use with --dir:\n  --ext   Override the output file extension; for use with --dir        [string]\n  --base  Mirror the directory structure relative to this path          [string]\n          in the output directory, for use with --dir\n\nSass options:\n  -s, --style           Output style. Possible values are \"expanded\",      [string]\n                        or \"compressed\". Default: \"expanded\".\n  --[no-]source-map     Whether to generate source maps. Default is on.   [boolean]\n  --embed-source-map    Tells Sass to embed the contents of the source    [boolean]\n                        map file in the generated CSS, rather than\n                        creating a separate file and linking to it\n                        from the CSS.\n  --embed-sources       Embed the entire contents of the Sass files that  [boolean]\n                        contributed to the generated CSS in the source map.\n                        This may produce very large source maps, but it\n                        guarantees that the source will be available on\n                        any computer no matter how the CSS is served.\n  -–source-map-urls     Controls how the source maps that Sass generates   [string]\n                        link back to the Sass files that contributed to\n                        the generated CSS. Possible values are \"relative\"\n                        or \"absolute\". Default: \"relative\".\n  --silence-deprecation This option tells Sass to silence a particular     [string]\n                        type of deprecation warning if you wish to \n                        temporarily ignore the deprecation.\n  -I, --load-path       Adds an additional load path for Sass to look      [string]\n                        for stylesheets.\n  -p, --pkg-importer    Built-in importer(s) to use for pkg: URLs.         [string]\n                        [node] Load files like Node.js package resolution.\n\nAdvanced options:\n  --poll            Use polling for file watching. Can optionally pass   [boolean]\n                    polling interval; default 100 ms\n  --async           Use Sass's compileAsyc/compileStringAsync functions. [boolean]\n                    This will be slower in most cases.\n  --[no-]error-css  This flag tells Sass whether to emit a CSS file      [boolean]\n                    when an error occurs during compilation. This\n                    CSS file describes the error in a comment and in\n                    the content property of body::before, so that\n                    you can see the error message in the browser\n                    without needing to switch back to the terminal.\n  --config          Set a custom directory to look for a config file      [string]\n\nMisc:\n  -v, --version  Show version number                                   [boolean]\n  -h, --help     Show help                                             [boolean]\n\n```\n\n## Examples\n\n```\nsheetloaf scss/style.scss --output css/style.css --style compressed --use autoprefixer\n```\n\nAbove is an example of transforming a sass file, compressing the output and using the\npostcss plugin autoprefixer to add vendor prefixes. Note that postcss plugins will need to be installed\nseparately, so to use autoprefixer you'd first run:\n\n```\nnpm install autoprefixer\n```\n\n---\n\nYou may also specify a glob pattern or directory as input like so:\n\n```\nsheetloaf \"scss/**/*.scss\" --dir css --style compressed --use autoprefixer\nsheetloaf scss --dir css --style compressed --use autoprefixer\n```\n\nIn this case we're using the --dir option in place of output. Sheetloaf will automatically ignore partial files whose names begin with \\_.\n\nFor best results when using a glob pattern, make sure to use quotes to avoid side-issues. See https://medium.com/@jakubsynowiec/you-should-always-quote-your-globs-in-npm-scripts-621887a2a784\n\nSheetloaf also allows for piping!\n\n```\n// stdin\ncat scss/style.scss | sheetloaf --use autoprefixer --output css/style.css\n\n// stdout\nsheetloaf scss/style.scss --use autoprefixer \u003e style.css\n\n// stdout and logging to stderr\nsheetloaf scss/style.scss --use autoprefixer 2\u003e error.txt 1\u003e style.css\n\n// all together now!\ncat scss/style.scss | sheetloaf --use autoprefixer 2\u003e error.txt 1\u003e style.css\n```\n\n## FAQ\n\n### Why does this project exist? Justify your existence, sheetloaf!\n\nI'll try.\n\n### Why not just use a postcss plugins that process sass like postcss-scss?\n\nPostcss-scss combined with other plugins like postcss-mixins gets you in the ballpark, but in my experience there are areas of sass syntax that get missed. Sheetloaf ensures all syntax in dart-sass is covered and rendered.\n\n### Why not just use sass and pipe the output to postcss-cli?\n\nThis works great with single files but when you've got a filewatcher on multiple files this isn't possible.\n\nYou _could_ do something like render sass files, output them to a temp folder, and then when those files are modified, check that with chokidar and then call postcss-cli on them to do the rest of the job. This is what I did for a while and I found it to an extremely fiddly and inelegant solution.\n\n### What's the benefit of using this over something like Gulp, Webpack, or Parcel?\n\nFor complex projects a more full-featured tool may be more useful, or if you prefer prefer processing all of your scripts/styles/etc in one place.\n\nThe benefit of Sheetloaf is fewer dependencies and build simplicity. I've used this tool for all of my personal web projects, and figured I'd polish it up and see if it helps anyone else.\n\n### Can I use this with regular CSS files?\n\nYes, but you should use [postcss-cli](https://github.com/postcss/postcss-cli) in that case, as you'll be incurring a performance hit for no good reason. This project is intended to simplify the two-step process of rendering Sass files and then transforming the output with PostCSS.\n\nLikewise, if all you're looking for is to compile Sass with no transformations, you can stick with [dart-sass](https://github.com/sass/dart-sass).\n\n### Why doesn't sheetloaf support custom stringifiers/syntaxes/parsers?\n\nI don't currently see a good use case for including these, since sheetloaf is currently intended to only be used with Sass files. I'm open to be proven wrong though!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenfuddled%2Fsheetloaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenfuddled%2Fsheetloaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenfuddled%2Fsheetloaf/lists"}