axllent / silverstripe-scss
A wrapper for scssphp to integrate scss compiling directly into Silverstripe
Installs: 14 253
Dependents: 8
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 3
Open Issues: 1
Type:silverstripe-vendormodule
pkg:composer/axllent/silverstripe-scss
Requires
- axllent/silverstripe-minifier: ^2.0
- scssphp/scssphp: ^1.12
- silverstripe/framework: ^5.0 || ^6.0
README
A wrapper for scssphp to integrate SCSS compiling directly into Silverstripe.
SCSS files are only compiled when needed, or when a ?flush is done.
Features
- Integrates scssphp seamlessly into Silverstripe
- Includes flushing option (?flushstyles) to regenerate CSS stylesheets (ie. force undetected SCSS changes with @import). Note: this only applies to sites indevmode. Alternatively use?flushto flush everything including stylesheets.
- Writes processed *.scssfiles intoassets/_css/and automatically modifiesRequirementspaths
- Allows custom global variables to be passed through to SCSS compiling (yaml configuration)
- Basic support for $ThemeDir(eg:url('#{$ThemeDir}/images/logo.png')(see Configuration)
- Automatic compression of CSS files when in livemode (may require an initial?flush)
- Adds any processed editor.scssfiles to TinyMCE (must be included in your front-end template)
- Source maps (either inline or file) in devmode only, can be disabled
Requirements
- Silverstripe ^5 || ^6
Installation
composer require axllent/silverstripe-scss
Usage
You need refer to your SCSS files by their full SCSS file names (eg:stylesheet.scss).
Example
<?php use SilverStripe\CMS\Controllers\ContentController; use SilverStripe\View\Requirements; class PageController extends ContentController { public function init() { parent::init(); Requirements::css('themes/site/css/stylesheet.scss'); // OR search for the scss in your $themeDirs Requirements::themedCSS('css/stylesheet.scss'); } }
The generated HTML will point automatically to the processed CSS file in assets/_css/
rather than the original SCSS file location, for example
<link rel="stylesheet" type="text/css" href="/assets/_css/themes-site-css-stylesheet.css?m=123456789" />
Further documentation
- Usage.md for usage examples.
- Configuration.md for configuration options.
- View Changelog