php-forge / baseline-frontend
Frontend baseline for Prettier and stylelint tooling shared via yii2-extensions/scaffold.
Requires
- php: >=8.3
This package is auto-updated.
Last update: 2026-08-27 13:42:42 UTC
README
Baseline Frontend
Frontend baseline for PHP Forge
Prettier and stylelint configs shared via yii2-extensions/scaffold. Pair with php-forge/baseline for core PHP/editor/CI tooling.
System requirements
Installation
composer require php-forge/baseline-frontend:^0.1 --dev
Or add the dependency manually to composer.json:
{
"require-dev": {
"php-forge/baseline-frontend": "^0.1"
}
}
Then run composer update.
Scaffolded distribution
This package is a yii2-extensions/scaffold provider for frontend
formatting and linting metadata (Prettier + stylelint). Templates live under metadata/ and are mapped to consumer
roots via the {from, to} form in scaffold.json.
Opt in by allowing the plugin and listing this package as an authorised provider:
composer require yii2-extensions/scaffold:^0.1 --dev
{
"config": {
"allow-plugins": {
"yii2-extensions/scaffold": true
}
},
"extra": {
"scaffold": {
"auto": false,
"allowed-packages": ["php-forge/baseline-frontend"]
}
}
}
With auto: false, the plugin does not run on composer install; sync templates manually:
vendor/bin/scaffold reapply --provider=php-forge/baseline-frontend vendor/bin/scaffold diff <file> vendor/bin/scaffold status
Files distributed
.
├── .prettierrc.json # replace: Prettier formatting rules (tabWidth 4, yml/md overrides)
├── .prettierignore # replace: Paths Prettier should skip
├── .stylelintignore # replace: Paths stylelint should skip
├── .stylelintrc.json # replace: stylelint config (standard-scss)
└── .github
└── linters
└── .stylelintrc.json # replace: stylelint config for CI (mirrors root)
Why two
.stylelintrc.json? Some projects invokestylelint --config .stylelintrc.json(root), others usestylelint --config .github/linters/.stylelintrc.json --config-basedir .(as inphp-forge/debug-core). This provider ships both targets from the same source so either invocation works after scaffold.
Mode semantics:
replace: lock-step with this package. Local edits trigger a warning and the file is skipped on update.append: provider content is merged into the existing file; consumer additions never blown away.preserve: file is written once on first install and never overwritten.
Related packages
For core PHP editor, git and generic linter configs, see php-forge/baseline.
For ECS and Rector configurations and their root wrapper templates, see
php-forge/coding-standard. The three packages are independent — adopt
any combination.
Install only baseline for pure PHP libraries. Add baseline-frontend in projects with JS/CSS/SCSS or where
quality.yml needs prettier-config/prettier-ignore-path (optional inputs):
{
"require-dev": {
"php-forge/baseline": "^0.1",
"php-forge/baseline-frontend": "^0.1",
"php-forge/coding-standard": "^0.3",
"yii2-extensions/scaffold": "^0.1"
},
"extra": {
"scaffold": {
"allowed-packages": [
"php-forge/baseline",
"php-forge/baseline-frontend",
"php-forge/coding-standard"
]
}
}
}
Frontend package.json setup:
{
"devDependencies": {
"prettier": "^3.9.6",
"stylelint": "^17.14.1",
"stylelint-config-standard-scss": "^17.0.0"
},
"scripts": {
"format": "prettier --write 'resources/**/*.{js,css,scss}' 'docs/**/*.md' 'package.json'",
"format:check": "prettier --check 'resources/**/*.{js,css,scss}' 'docs/**/*.md' 'package.json'",
"lint:css": "stylelint --config .stylelintrc.json --config-basedir . 'resources/src/**/*.{css,scss}'",
"lint:css:fix": "stylelint --config .stylelintrc.json --config-basedir . --fix 'resources/src/**/*.{css,scss}'"
}
}