Commit graph

59 commits

Author SHA1 Message Date
Basilisk-Dev
7e45a24853 Support CSS sizing math functions
Prereq for parts of #2404
2026-09-25 00:40:07 +03:00
Basilisk-Dev
7159f5fa08 Issue #2404 - Enable CSS aspect-ratio sizing 2026-09-25 00:28:38 +03:00
EAZYBLACK
19e946c77e fix shit so i can cherry pick 2026-09-24 23:24:22 +03:00
Basilisk-Dev
7e0818c9ec Issue #2982 - Follow-up: allow color-mix to work with oklab and oklch
Tag #2489 and #3003
2026-09-24 20:50:56 +03:00
EAZYBLACK
e602080115 fix fatal recursion bug 2026-09-24 20:42:47 +03:00
Basilisk-Dev
cf8b773656 Fix app-unit rounding for border width edges 2026-09-22 12:28:51 -07:00
Basilisk-Dev
84b9b77335 Fix CSS border rounding and currentcolor clipping 2026-09-22 12:28:22 -07:00
wuggy
89b2dcbb96 Fix build error 2026-09-14 13:57:28 -07:00
Moonchild
3ad2791ea1 Issue #3109 - Clamp border-radius value to Int32.MaxValue
This avoids artifacts from out-of-bounds values.
Resolves #3109
2026-09-14 13:44:38 -07:00
Moonchild
6e43835b34 Issue #3109 - Use CSS' internal length clamp value instead. 2026-09-14 13:43:19 -07:00
wuggy
dabb92b3f9 Fix build errors, back out of new CSS changes 2026-06-26 15:43:46 -07:00
Basilisk-Dev
c47cea4ddf Support CSS sizing math functions 2026-06-26 12:35:43 -07:00
Basilisk-Dev
7766f8f53d Enable CSS aspect-ratio sizing 2026-06-26 12:32:41 -07:00
erixreyes
2855cd6ded Issue #2489: Produce more accurate computations 2025-07-29 10:13:49 +08:00
erixreyes
5fe574de22 Issue #2489: Allow SRGB with alpha mixing 2025-07-29 10:13:12 +08:00
erixreyes
22be9f7fc6 Issue #2489: Allow HSL with alpha mixing 2025-07-29 10:12:56 +08:00
erixreyes
01b0b8251d Issue #2489: Allow color-mix() to differentiate color spaces 2025-07-29 10:12:38 +08:00
erixreyes
ff5f3b2b2d Issue #2489: Improve color-mix() computation algorithm 2025-07-29 10:12:05 +08:00
erixreyes
58d7206259 Issue #2489: Add color-mix computation support 2025-07-29 10:09:51 +08:00
MeladJM
0903dacaa7 Issue #2792 -Implements parsing, computed style, and writing mode mapping for overflow-block and overflow-inline properties 2025-07-17 23:12:33 +08:00
MeladJM
5e8e1208e7 Issue #2499 - Part 3: Add CSS clip overflow support with serialization fixes 2025-07-16 15:20:45 +08:00
MeladJM
205ea844f4 Issue #2499 - Part 2: Fix overflow shorthand serialization for mixed clip values 2025-07-16 14:59:48 +08:00
erixreyes
67421b3048 Issue #2757: Create a new basicShape of type inset then set inset coords to zero. 2025-07-09 00:30:21 +08:00
erixreyes
c3590da576 Issue #2780: Add back the mismatch overflow handling in nsRuleNode.cpp 2025-07-08 10:01:35 +08:00
MeladJM
dae72b452c Issue #2124/2662: Cleaning of code 2025-07-07 11:58:54 +08:00
Francis Dominic Fajardo
a47f44e93d Issue #2045 - Part 8: Remap revert keyword values to a higher cascade level 2025-07-07 11:55:40 +08:00
Francis Dominic Fajardo
c4b6135c99 Issue #2045 - Part 6: Treat "revert" values as the same as "unset" when encountered in the rule node 2025-07-07 11:21:14 +08:00
Francis Dominic Fajardo
552cb8dbcc No issue - Fix mixing of tabs with space-indented code. 2025-07-07 11:19:34 +08:00
Francis Dominic Fajardo
8236eec152 Issue #2765 - Part 1: Scrollbar width should be treated as a non-inherited property
Note: non-inherited properties are stored in "reset" style structs.

Previous implementation treats it as an inherited property, which
doesn't match the spec.

This also fixes the incorrect behavior when using the `unset` value
for this property by specifying SETVAL_UNSET_INITIAL in the mask.
2025-06-27 23:31:38 +08:00
Moonchild
8a2bc8ef4d Issue #1925 - Convert NS_FULL_TO_HALF_CORNER to a constexpr function.
Note: Because the new function checks types, we need to change the
fullCorner type in `nsComputedDOMStyle::GetEllipseRadii()` and
`StyleAnimationValue::ExtractComputedValue()` to `Corner` instead of the
underlying base type.
2024-08-05 10:35:50 +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
4bf43b8fb4 Issue #2488 - Part 3: Remove the StyleSetHandle smart pointer class 2024-04-02 22:49:48 +08:00
FranklinDM
a93a7bed47 Issue #2112 - Part 5: Remove Servo from forwarding code used by magic pointer classes 2024-04-02 22:41:34 +08:00
FranklinDM
b1c9206051 Issue #2112 - Part 4: Remove Stylo support for mask-image 2024-04-02 22:30:47 +08:00
FranklinDM
e777ae5a3c Issue #2112 - Part 3: Remove --enable-stylo config and conditionals 2024-04-02 22:30:28 +08:00
Moonchild
fa8bc1e81c Issue #1992 - Part 1: Un-prefix -moz-{min|max}-content keywords. 2022-09-23 11:03:34 +08:00
FranklinDM
b4f2c83687 Issue #1838 - Part 2: Remove grid- prefix from grid-(column|row)-gap properties
This removes the `grid` prefix from the gap-related properties of grid since they are now part of the box alignment specification. Former grid-gap* properties were aliased to the unprefixed properties to maintain compatibility.

The previously multi-column layout only `column-gap` property has been modified to apply to the Grid layout (and Flexbox in a following commit), moving the `mColumnGap` member variable from `nsStyleColumn` to `nsStylePosition`.

Notes:
* Bug 1398537 - support for percent values in column-gap for multi-column layout landed as part of Issue #1230. However, it was incomplete because it did not update `nsRuleNode` to allow transformation of percentage values for `column-gap`. This was consequently fixed as part of this commit.
* Bug 1456166 - this might not apply because we don't have that devtools test in UXP
* `nsRuleNode`, `nsCSSParser`, `Declaration`, and other related classes were merged into Stylo. These should be taken into consideration when porting patches from Mozilla.

Partially based on https://bugzilla.mozilla.org/show_bug.cgi?id=1398482
2022-04-19 21:55:52 +08:00
Moonchild
a05b76ff1a Issue #1781 - Follow-up: fix debug assert in MergeMultiplicativeR() 2021-07-28 10:10:09 +08:00
Moonchild
15a322effa Issue #1781 - Part 1: support calc() in stroke-dashoffset CSS
This adds basic calc() support to stroke-dashoffset. It does not provide
CSS animation (yet, todo for part 2)
2021-06-15 11:18:58 +08:00
Moonchild
8e08d8bfd3 Issue #1705 - Part 4: Add scrollbar-width CSS keyword to CSS parser.
This should be all parts needed to add a brand new enum keyword including
getting the computed style from it...
2021-01-14 22:19:55 +08:00
Moonchild
21f707390d Issue #1705 - Part 3: Rename ScrollbarStyles to ScrollStyles.
ScrollbarStyles contains values of overflow, (over)scroll-behavior, etc.
The only one which is marginally related to scroll _bars_ is overflow, which can
be used to hide scrollbar (by making an element not scrollable) or enforce the
scrollbar to display.

It makes more sense to be called ScrollStyles as it's mainly concerning behavior
of scrolling, not scrollbars. Also, with the addition of scrollbar width
properties, the current name can be confusing.
2021-01-14 22:19:53 +08:00
athenian200
5026bdf5ee Issue #1673 - Part 5: Fix brace style and missed -moz-tab-size reference. 2020-11-06 09:42:28 +08:00
athenian200
7373069560 Issue #1673 - Part 4: Unprefix -moz-tab-size.
While we do fail a couple of tests, the other mainstream browsers also fail them and I think our implementation of tab-size is good enough to be unprefixed at this point. Having this patch also makes testing easier.
2020-11-06 09:42:27 +08:00
athenian200
b739e46f74 Issue #1673 - Part 2: Make tab-size animatable and fix typos.
There were a few typos in the previous patch and this patch also makes tab-size animatable which didn't really require much of a change at all.
2020-11-06 09:42:24 +08:00
athenian200
633d50eb3f Issue #1673 - Part 1: Allow tab-size to accept <length>.
Currently -moz-tab-size only accepts <number> values, and both Chrome and Firefox currently support <length> values and have for some time now. So with this you would be able to support sizes in px or em, for instance. This was implemented in Firefox 53 and was trivial to backport.
2020-11-06 09:42:23 +08:00
athenian200
1f68b25468 Issue #1668 - Part 2: Visited color and auto support for caret-color property.
Mozilla's original implementation of this failed a couple of tests, but this seems to solve all the problems. Basically, the caret-color wasn't able to be set differently based on whether a link was visited, and the auto value implementation was incomplete. The only test we fail now is the one where you have grey text on a grey background and the caret is supposed to be visible, but I think that may have been removed from the spec. Even if it wasn't, no other browser supports it anyway.
2020-10-23 10:05:52 +08:00
athenian200
33e50615d9 Issue #1668 - Part 1: Implement support for caret-color property.
This CSS property allows input carets (that blinking input cursor you see in text fields), to be given a custom color. This was implemented in Firefox 53, and it was such a minor feature that no one ever missed it, but I don't see any harm in implementing this.

https://bugzilla.mozilla.org/show_bug.cgi?id=1063162
2020-10-23 10:05:51 +08:00
Moonchild
30df895eb2 Issue #1656 - Part 3: Nuke more vim config lines in the tree.
Another S&R run with some smarter matching.
2020-09-25 22:04:17 +08:00
athenian200
fb8d9b8c78 Issue #1647 - Part 2: Implement VARIANT_OPACITY to correctly serialize.
Even though percentages are already treated as floats internally by the style system for computation purposes, you have to go out of your way to stop them from being read back out as percentages. What I do here amounts to storing the percentage token in the "wrong" container, the one normally used for floats. This allows a value that was read in as a percentage to be read back out as something else, which is normally prevented by the design of the style system.
2020-09-18 20:53:45 +08:00