Moonchild
5a832a6e24
Issue #2857 - Implement inset-block and inset-inline CSS shorthand
...
Resolves #2857
2025-12-24 09:58:37 +08:00
erixreyes
052b5d1ffa
Issue #2489 : Disallow percentage overflow and underflow
2025-07-29 10:13:28 +08:00
erixreyes
01b0b8251d
Issue #2489 : Allow color-mix() to differentiate color spaces
2025-07-29 10:12:38 +08:00
erixreyes
eb7eacc565
Issue #2489 : Remove unnecessary initializations
2025-07-29 10:11:49 +08:00
erixreyes
a3cb799126
Issue #2489 : Fix CSS color-mix() percentage parsing
2025-07-29 10:11:34 +08:00
erixreyes
7899850a19
Issue #2489 : color-mix function parsing
2025-07-29 10:11:13 +08:00
erixreyes
6b938c48a5
Issue #2489 : Include color-mix to avoid filtering
2025-07-29 10:10:16 +08:00
Francis Dominic Fajardo
53e6317bfb
Issue #2828 - Part 1: Build and store the array of layer name tokens in the layer at-rules
2025-07-25 20:13:14 +08:00
erixreyes
906f05e606
Issue #2691 : Utilize regex for spacing rules
2025-07-18 21:46:19 +08:00
erixreyes
f2d6170830
Issue #2691 : Refactored ParseSupportsSelector
2025-07-18 21:46:06 +08:00
erixreyes
ea580ec54b
Issue #2691 : Improve Parser State Handling
2025-07-18 21:45:52 +08:00
erixreyes
224d1724b2
Issue #2691 : Add special handling for nth-child expressions
2025-07-18 21:45:37 +08:00
erixreyes
aaae6484ee
Issue #2691 : Enhance spacing logic for selector formatting
2025-07-18 21:45:20 +08:00
erixreyes
69556b7b1b
Issue #2691 : Improve token handling for selectors
2025-07-18 21:45:06 +08:00
erixreyes
fcb4b3d01f
Issue #2691 : Add basic parentheses tracking to ParseSupportsSelector
2025-07-18 21:44:53 +08:00
erixreyes
e9a7190529
Issue #2691 : Adjusted the function to use ParseSelectorGroup
2025-07-18 21:44:40 +08:00
erixreyes
8be86514f0
Issue #2691 : Implement ParseSupportsSelector
2025-07-18 21:44:26 +08:00
Moonchild
07cf2e643f
Issue #2720 - Follow-up: Use temp value for duplicate color stop
2025-07-16 15:21:14 +08:00
erixreyes
f4ffb1ec16
Issue #2124 - Adjust overflow parser to handle two values
2025-07-07 11:57:59 +08:00
Francis Dominic Fajardo
9105c58a30
Issue #2045 - Part 4: Parse "revert" in property values wherever "unset" is allowed
2025-07-07 11:20:42 +08:00
Francis Dominic Fajardo
b0f0972314
Issue #2045 - Part 3: Implement cascade origin tracking to CSS parser
...
The CSS parser already knows the cascade origin, but it is using a different enum for storing it.
2025-07-07 11:20:23 +08:00
Moonchild
80b30a8177
Issue #2720 - Implement two-location color stop logic.
...
This allows for two-location color stops (`color x% y%`) which is shorthand
for `color x%, color y%` where both colors are equal. (pct/length accepted)
See code comment for the reason it's implemented the way it is.
Resolves #2720
2025-04-03 09:44:51 +08:00
Martok
2e3953399a
Issue #1765 - Follow-Up: For parsing calc() in non-hue component of hsl/a(), explicitly expect <percentage> values
2025-01-23 09:38:03 +08:00
FranklinDM
9ad579bd35
Issue #2486 - Part 5: Fix parsing of nested layer names
...
This does not handle the merging of same-named layers, however.
2024-07-18 22:32:26 +08:00
FranklinDM
2fc2056be7
Issue #2486 - Part 4: Ensure layer statement rule is appended and invalid tokens are restored
2024-07-18 22:32:09 +08:00
FranklinDM
9630698d31
Issue #2486 - Part 2: Implement parser support for layer block and layer statements
...
This does not deal with layer specificity.
2024-07-18 22:31:34 +08:00
FranklinDM
cac56b8e77
Issue #2486 - Part 1: Initial plumbing and CSSOM support for cascade layers
2024-07-18 22:31:18 +08:00
FranklinDM
2ba31f4e97
Issue #2522 - Part 2: Implement support for logical viewport units
2024-06-11 10:14:40 +08:00
FranklinDM
5c06335c5b
Issue #2522 - Part 1: Alias small, large, and dynamic viewport units to base viewport
2024-06-11 10:14:27 +08:00
FranklinDM
f41ad3aae5
Issue #2477 - Part 3: Logical box properties should accept auto values
2024-04-11 15:56:49 +08:00
FranklinDM
bfe76f65db
Issue #2477 - Part 2: Implement shorthand properties for [margin/padding][block/inline]
2024-04-11 15:56:31 +08:00
FranklinDM
1e73f1f2d2
Issue #2477 - Part 1: Implement a separate function for parsing pair box properties
...
This reuses existing logic from ParseGap.
2024-04-11 15:54:36 +08:00
FranklinDM
6ae0a69ac7
Issue #1765 - Part 3: Provided token type should be used in LookForTokenType
...
I didn't realize this immediately after moving the code into a method. Oops.
2023-05-15 09:14:24 +08:00
FranklinDM
d678cc2c45
Issue #1765 - Part 2: Implement calc() parsing inside rgb/a() and the non-hue component of hsl/a()
...
This also adds a new helper method for checking the type of tokens that will be parsed after the current token, which is useful for determining the unit of values inside calc() functions.
Partially based on https://github.com/roytam1/UXP/commit/8a0897d23f5b51526f8a2c6ef63cb26968e6b985
2023-05-15 09:14:07 +08:00
FranklinDM
73a6dc3122
Issue #1765 - Part 1: Move ReduceNumberCalcOps struct up higher, rename IsCSSTokenCalcFunction to CSSParserImpl::IsCalcFunctionToken
2023-05-15 09:13:47 +08:00
FranklinDM
91d2b6f4cf
Issue #1592 - Part 6: Allow pseudo-classes with a forgiving selector list argument to follow pseudo-elements
...
Pseudo-classes with a forgiving selector list argument are allowed to follow a pseudo-element, but must treat any selector that is not of the same type as invalid. It doesn't make any sense, but that's the behavior of other tainted browsers.
2023-03-24 09:12:00 +08:00
FranklinDM
92b31dd255
Issue #1592 - Part 3: Ensure only tree-abiding pseudo-elements will follow ::slotted()
2023-03-24 09:10:42 +08:00
FranklinDM
77ad970db6
Issue #1592 - Part 2: Parse ::slotted() pseudo-element as if it were a pseudo-class
...
- Block slot elements from being matched by ::slotted
- Ensure ::slotted() is serialized as a pseudo-element
- Add pref to control whether the pseudo-class is enabled
2023-03-24 09:07:36 +08:00
FranklinDM
ab63b7b946
Issue #1592 - Part 1c: Pass SelectorParsingFlags as a reference
2023-03-24 09:04:18 +08:00
FranklinDM
ef36c56593
Issue #2137 - Part 4: Fix namespace regression
2023-03-12 07:09:56 +08:00
FranklinDM
b257a71cce
Issue #2137 - Part 3: Don't always use the internal pseudo-class for handling negations
2023-03-12 07:09:41 +08:00
FranklinDM
3bb3c193d0
Issue #2137 - Part 2: Implement SelectorParsingFlags and use it to pass info around
2023-03-12 07:09:22 +08:00
FranklinDM
82fa9fb80b
Issue #2137 - Part 1: Modify :not() selector to accept a complex selector list
2023-03-12 07:09:00 +08:00
Martok
2b903a20b3
Issue #2143 - Implement CSS env() Environment Variables
2023-03-07 11:17:39 +08:00
FranklinDM
21d468ee65
Issue #2136 - Part 1: Implement CSS inset property
2023-03-06 16:27:53 +08:00
FranklinDM
439c671b26
Issue #2078 - Follow-up: Propagate combinator restriction to :is()/:where()
...
Based on spec discussion: https://github.com/w3c/csswg-drafts/issues/5093
2023-02-23 21:15:40 +08:00
FranklinDM
53f5905381
Issue #2078 - Follow-up: Move isForgiving check to ParsePseudoClassWithSelectorListArg
2023-02-23 21:14:58 +08:00
FranklinDM
9037d5662d
Issue #1593 - Follow-up: Accept only a single selector in the argument of :host/:host-context
...
Current spec says these two pseudo-classes accept only a single compound selector:
:host( <compound-selector> )
:host-context( <compound-selector> )
2023-02-22 07:07:39 +08:00
FranklinDM
6d77f755da
Issue #2078 - Part 6: Replace empty list head with the next non-empty list for forgiving selector lists
...
What happens here if aListHead is an empty selector list:
(1) next selector group is parsed and continues to the next iteration if it's empty or invalid
(2) if we're a forgiving selector list and aListHead is empty, replace it with the selector group that we've just parsed
(3) step 1 ignores invalid/empty, so we assert that step 2 should never have an empty selector list
2023-02-22 07:06:24 +08:00
FranklinDM
453b715ef6
Issue #2078 - Part 1: Update CSS rule processor to handle :is() and :where() CSS pseudo-classes
...
This modifies selector list parsing to accommodate being "forgiving". Aliases for the :is selector's former names were also included. Note that the older and prefixed variant `-moz-any` remains unforgiving.
2023-02-22 07:04:49 +08:00