Download the PHP package wikimedia/css-sanitizer without Composer
On this page you can find all versions of the php package wikimedia/css-sanitizer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download wikimedia/css-sanitizer
More information about wikimedia/css-sanitizer
Files in wikimedia/css-sanitizer
Package css-sanitizer
Short Description Classes to parse and sanitize CSS
License Apache-2.0
Homepage https://www.mediawiki.org/wiki/Css-sanitizer
Informations about the package css-sanitizer
Wikimedia CSS Parser & Sanitizer
This library implements a CSS tokenizer, parser and grammar matcher in PHP.
Usage
Conformance
The library follows the following grammar specifications:
- CSS Syntax Level 3, 2019-07-16
- CSS Values and Units Module Level 4, 2024-03-12
- CSS Selectors Level 3, 2018-11-06
The sanitizer recognizes the following CSS modules:
- Align Level 3, 2018-12-06
- Animations Level 1, 2018-10-11
- Backgrounds Level 3, 2017-10-17
- Break Level 3, 2018-12-04
- Cascade Level 4, 2018-08-28
- Color Level 4, 2025-04-24
- Compositing Level 1, 2015-01-13
- Counter Styles Level 3, 2021-07-27
- CSS Level 2, 2011-06-07
- Display Level 3, 2023-03-30
- Filter Effects Level 1, 2018-12-18
- Flexbox Level 1, 2018-11-19
- Fonts Level 3, 2018-09-20
- Grid Level 1, 2017-12-14
- Images Level 3, 2019-10-10
- Lists and Counters Level 3, 2020-11-17
- Logical Properties and Values Level 1, 2018-08-27
- Masking Level 1, 2014-08-26
- Multicol Level 1, 2019-10-15
- Overflow Level 3, 2023-03-29
- Overflow Level 4, 2023-03-21
- Page Level 3, 2018-10-18
- Position Level 3, 2016-05-17
- Ruby Level 1, 2022-12-31
- Selectors Level 4, 2019-02-25
- Shapes Level 1, 2014-03-20
- Sizing Level 3, 2021-12-17
- Sizing Level 4, 2025-02-24
- Text Level 3, 2019-11-13
- Text Decorations Level 3, 2019-08-13
- Easing Level 1, 2019-04-30
- Transforms Level 1, 2019-02-14
- Transforms Level 2, 2021-11-09
- Transitions Level 1, 2018-10-11
- UI 3 Level 3, 2018-06-21
- UI 4 Level 4, 2020-01-02
- Writing Modes Level 4, 2019-07-30
And also,
- The
touch-action
property from Pointer Events Level 2, 2019-04-04 :dir()
pseudo-class from Selectors Level 4, 2022-11-11- Accessibility related media features from Media Queries Level 5 including prefers-reduced-motion, prefers-reduced-transparency, prefers-contrast and forced-colors.
light-dark()
color function from Color Module Level 5, 2024-02-29
Running tests
composer install --prefer-dist
composer test
Adding properties
CSS specifications typically contain a summary of value grammars in the property index section. These value grammars map directly to PHP code.
Syntax | css-sanitizer code |
---|---|
foo |
new KeywordMatcher( 'foo' ) |
foo \| bar |
new KeywordMatcher( [ 'foo', 'bar' ] ) |
<string> |
$matcherFactory->string() |
<url> |
$matcherFactory->url() |
<integer> |
$matcherFactory->integer() |
<number> |
$matcherFactory->number() |
<ratio> |
$matcherFactory->ratio() |
<percentage> |
$matcherFactory->percentage() |
<length> |
$matcherFactory->length() |
<frequency> |
$matcherFactory->frequency() |
<angle> |
$matcherFactory->angle() |
<time> |
$matcherFactory->time() |
<resolution> |
$matcherFactory->resolution() |
Syntax | css-sanitizer code |
---|---|
a b |
new Juxtaposition( [ a, b ] ) |
a && b |
UnorderedGroup::allOf( [ a, b ] ) |
a \|\| b |
UnorderedGroup::someOf( [ a, b ] ) |
a \| b |
new Alternative( [ a, b ] ) |
Syntax | css-sanitizer code |
---|---|
a* |
Quantifier::star( a ) |
a+ |
Quantifier::plus( a ) |
a? |
Quantifier::optional( a ) |
a{3,4} |
Quantifier::count( a, 3, 4 ) |
a# |
Quantifier::hash( a ) |
a! |
new NonEmpty( a ) |
Releasing a new version
This package uses wikimedia/update-history
and its conventions.
See https://www.mediawiki.org/wiki/UpdateHistory for details.
History
We required a CSS sanitizer with several properties:
- Strict parsing according to modern standards.
- Includes line and character position for all errors.
- Configurable to limit unsafe constructs such as external URL references.
- Errors are easily localizable.
We could not find a library that fit these requirements, so we created one.
Additional release history is in HISTORY.md
.
All versions of css-sanitizer with dependencies
ext-mbstring Version *
ext-iconv Version *
wikimedia/utfnormal Version ^3.0.1 || ^4.0.0
wikimedia/scoped-callback Version 3.0.0 || 4.0.0 || 5.0.0