{"id":15994336,"url":"https://github.com/oskarrough/rough","last_synced_at":"2025-09-14T16:21:55.456Z","repository":{"id":6285892,"uuid":"7520097","full_name":"oskarrough/rough","owner":"oskarrough","description":"Front-end stack from when gulp was cool","archived":false,"fork":false,"pushed_at":"2018-03-27T10:36:21.000Z","size":756,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-05-02T06:18:13.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rough.surge.sh","language":"ApacheConf","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/oskarrough.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}},"created_at":"2013-01-09T11:45:05.000Z","updated_at":"2018-05-10T11:11:01.000Z","dependencies_parsed_at":"2022-09-12T23:42:02.284Z","dependency_job_id":null,"html_url":"https://github.com/oskarrough/rough","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/oskarrough/rough","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarrough%2Frough","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarrough%2Frough/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarrough%2Frough/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarrough%2Frough/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oskarrough","download_url":"https://codeload.github.com/oskarrough/rough/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskarrough%2Frough/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275130398,"owners_count":25410702,"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","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"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":[],"created_at":"2024-10-08T07:08:32.744Z","updated_at":"2025-09-14T16:21:55.382Z","avatar_url":"https://github.com/oskarrough.png","language":"ApacheConf","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rough\n\nA well-tested, boilerplate for developing new internet projects --\u003e http://rough.surge.sh\n\n![Pablo Picasso, 1969 — Homme et femme- bustes](http://i.imgur.com/nSxXkO5.jpg)\n\n![](https://travis-ci.org/oskarrough/rough.svg) ![](https://david-dm.org/oskarrough/rough.svg)\n\n## Getting started\n\nMake sure your `node -v` is at least 5. Then do:\n\n```bash\ncurl -sL https://github.com/oskarrough/rough/archive/master.zip | tar xz\ncd rough-master\nnpm install\nnpm start\n```\n\nThat's it. Check the features listed below or dive directly into the `package.json` and `gulpfile.js` to see what scripts and tasks are available.\n\n## Features\n\nThis rough boilerplate is very similar to [yeoman/generator-webapp](https://github.com/yeoman/generator-webapp) in being a gulp workflow based on three scripts:\n\n1. `npm start` starts a local server, everything will compile and live-reload on changes\n2. `npm run build` moves everything to `/dist` — compiled, minified and optimized. Ready for deployment\n3. `npm test` lints your styles and scripts and runs tests (by default there's a test to ensure your project compiles and builds)\n\nBelow the hood the following tasks are used. You can always call them directly, although it shouldn't be necessary.\n\n- `gulp templates` with Handlebars (and handlebars-layouts)\n- `gulp styles` with Sass (and libsass, autoprefixer \u0026 sourcemaps + easy imports from npm modules)\n- `gulp scripts` with Browserify, Rollup and next-gen JavaScript with Babel\n- `gulp icons` with Grunticon for SVG icons\n- `gulp images` optimizes images and generates SVG icons with `icons`\n- `gulp critical` is used by build to inline critical-path CSS\n- `gulp rev` to revision static assets for better caching\n- `gulp serve:dist` to test what you just build locally\n\n## Structure\n\n- app/images\n- app/images/icons (svg icons)\n- app/images/favicons (moved to root on build)\n- app/styles\n- app/scripts\n- app/scripts/vendor (for modules not available through npm)\n- app/fonts (webfonts)\n\n## Extras\n\nIt also contains a few *optional* features:\n\n- Custom select styles\n- Grids using Susy for the math\n- Configurable breakpoints\n- Lazy loading and responsive images using lazysizes and picturefill\n- Modernizr (use the link in the top of the file to customize it)\n\nAnd base styles to cover many edge-cases.\n\n- SUIT CSS base (extends normalize.css)\n- Component based styles structure\n- Useful mixins/utilities for calculating rem/em etc.\n\n## Styles\n\nStylesheets are compiled from SCSS and divided into:\n\n- Base\n- Utilities\n- Components\n- Layout\n\n**Base** styles are not allowed to use class selectors. The base is for styling default elements and configuration as colors, layout measures etc.\n\n**Utilities** are helpers to build your project. Could be for alignment, spacing or clearfixing etc.\n\n**Components** are the parts that make up your project. They are based on the 'base', build with 'utilities' and placed into 'layout'. Components can also contain layout. Most components are unique to a project.\n\n## Naming convention\n\nWe closely follow [SUIT's naming convention](https://github.com/suitcss/suit/blob/master/doc/naming-conventions.md).\n\n## Icons\n\nWe are using grunticon-cli to handle icons and svg sprites. There's a `gulp icons` task that compiles all .svg (and png) icons that you place in `app/images/icons`. Grunticon will merge them into a single CSS file that is then loaded async. It automatically runs as you  `gulp serve` or `gulp build`. Grunticon includes a `grunticon.loader.js` which is referenced in the head of your `index.html`. It will load the appropriate sprite method depending on your browser. Don't worry, it works.\n\nFor example, to use a `example-icon.svg` icon, you could the element `\u003ci class=\"icon-example-icon\"\u003e\u003c/i\u003e`.\n\nThe `app/styles/base/_icons.scss` file contains a few base styles to make styling icons easier.\n\n## Trouble in paradise?\n\nAre you using a node version of at least 5? Please try the the nuclear method: `rm -rf node_modules; npm cache clean; npm install`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskarrough%2Frough","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foskarrough%2Frough","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskarrough%2Frough/lists"}