Ali Mohammad Pur
279924242d
LibWeb: Add CSS CompositeStyleValue
...
This represents the value of properties assigned via their shorthands,
and is expanded when computing actual property values.
2023-05-29 05:35:41 +02:00
Sam Atkins
5cbf6eb930
LibWeb: Remove StyleValue::has/to_integer()
...
Only NumericStyleValue holds integers.
I'm not sure our current distinction between NumericStyleValue holding
an integer or non-integer is useful given it always returns a float.
:thonk:
2023-05-27 16:12:25 +02:00
Sam Atkins
f6fae315e3
LibWeb: Add CustomIdentStyleValue, along with parsing for it
...
This corresponds to the `<custom-ident>` type in CSS grammar.
2023-05-25 15:31:20 +01:00
Andreas Kling
82ddc813d5
LibWeb: Stop aggressively quantizing font-weight values
...
Before this change, we were quantizing to either 400, 700 or 900.
This caused us to treat 100/200/300 weighted fonts as if they were
interchangeable.
2023-05-24 20:58:46 +02:00
Andreas Kling
be10360350
LibWeb: Move resolution of font weights and slopes to StyleValue
...
This isn't exactly ideal factoring (though I'm not sure what is) but
this will make it possible to reuse this code in the parser.
2023-05-24 17:19:18 +02:00
Sam Atkins
d732a83de8
LibWeb: Propagate errors from absolutizing StyleValues
2023-05-06 08:07:28 +02:00
Emil Militzer
31e1be0438
LibWeb: Support multi-keyword syntax for CSS display property
...
The Display class already supported all specific values, and now they
will be parsed too. The display property now has a special type
DisplayStyleValue.
2023-05-02 20:27:28 +02:00
martinfalisse
22202715fc
LibWeb: Parse grid-template
property
2023-04-30 05:56:10 +02:00
martinfalisse
bebf4363db
LibWeb: Change name of GridTrackSizeListStyleValue
...
Change the name of GridTrackSizeStyleValue to
GridTrackSizeListStyleValue which is more accurate.
2023-04-30 05:56:10 +02:00
Sam Atkins
0679b4e0b9
LibWeb: Wrap font metrics into a struct
...
Rather than passing an increasingly-unwieldy number of font parameters
individually to every function that resolves lengths, let's wrap them
up.
This is frustratingly close to being `Gfx::FontPixelMetrics`, but bitmap
fonts cause issues: We choose the closest font to what the CSS
requests, but that might have a wildly different size than what the
page expects, so we have to fudge the numbers.
No behaviour changes.
2023-04-29 16:23:50 +02:00
MacDue
2fbe5b969b
LibWeb: Add URLStyleValue to represent general url() values
...
This is primarily being added to support `fill: url(#gradient)` for
SVGs.
2023-04-28 09:42:28 +02:00
Sam Atkins
0f9f6aef81
LibWeb: Simplify StyleValue API now that auto
isn't a length
...
Now that LengthStyleValue never contains `auto`, IdentifierStyleValue is
the only type that can hold an identifier. This lets us remove a couple
of virtual methods from StyleValue.
I've kept `has_auto()` and `to_identifier()` for convenience, but they
are now simple non-virtual methods.
2023-04-19 18:25:18 +02:00
Sam Atkins
bab968867d
LibWeb: Move StyleValue::absolutized() back where it belongs
...
I accidentally moved this when moving the CalculatedStyleValue methods,
and didn't notice because it was hidden in the middle. Oops!
2023-04-13 09:53:47 +02:00
MacDue
2a659693bc
LibWeb: Add EdgeStyleValue
...
This represents a single edge and offset, this will be needed for
the values of background-position-x/y.
2023-04-03 07:10:33 +02:00
Sam Atkins
1280d70d74
LibWeb: Split CalculatedStyleValue out of StyleValue.{h,cpp}
2023-03-30 21:29:50 +02:00
Sam Atkins
0c14103025
LibWeb: Move PercentageOr and subclasses into PercentageOr.{h,cpp}
...
This solves an awkward dependency cycle, where CalculatedStyleValue
needs the definition of Percentage, but including that would also pull
in PercentageOr, which in turn needs CalculatedStyleValue.
Many places that previously included StyleValue.h no longer need to. :^)
2023-03-30 21:29:50 +02:00
Sam Atkins
16e3a86393
LibWeb: Make absolutized_length()
helper a Length method
...
There were a mix of users between those who want to know if the Length
changed, and those that just want an absolute Length. So, we now have
two methods: Length::absolutize() returns an empty Optional if nothing
changed, and Length::absolutized() always returns a value.
2023-03-30 21:29:50 +02:00
Sam Atkins
d64ddeaec4
LibWeb: Move PositionValue into its own files
...
It's in Position.{h,cpp} because it represents a <position> in CSS, even
though it's currently named PositionValue to avoid collisions.
2023-03-30 21:29:50 +02:00
Sam Atkins
bcebca62d3
LibWeb: Move CSS::EdgeRect into its own files
...
Also remove the unused StyleValue::to_rect() because an EdgeRect is only
ever held by a RectStyleValue.
2023-03-30 21:29:50 +02:00
Sam Atkins
7d08d5ad6f
LibWeb: Remove now-unused includes from StyleValue.cpp
...
And add them to all the places that relied on getting them transitively.
2023-03-25 16:56:04 +00:00
Sam Atkins
4c54c5d3dd
LibWeb: Split StyleValueList out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
3a2de67c7b
LibWeb: Split RectStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4bf59c59bb
LibWeb: Split UnsetStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1d948f7462
LibWeb: Split UnresolvedStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
87b7efa109
LibWeb: Split TimeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
cd06b1341b
LibWeb: Split TransformationStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
66cb7edffb
LibWeb: Split TextDecorationStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9b834058ee
LibWeb: Split StringStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
08fa513887
LibWeb: Split ShadowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
6cedf5e05b
LibWeb: Split ResolutionStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
b1ccd30b02
LibWeb: Split PositionStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4b711932cc
LibWeb: Split PercentageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
f98634586e
LibWeb: Split OverflowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
7f6add1c6e
LibWeb: Split NumericStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
fba2dacc7a
LibWeb: Split ListStyleStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9a84151169
LibWeb: Split LengthStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1591352531
LibWeb: Split InitialStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
44c9a5b648
LibWeb: Split InheritStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
e61a5ad180
LibWeb: Split AbstractImageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
0f04fa2e6e
LibWeb: Split RadialGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
c8ffd82cb7
LibWeb: Split LinearGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
f30b042890
LibWeb: Split ConicGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
35b240c87d
LibWeb: Split ImageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
76de017a51
LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
d39788556a
LibWeb: Split GridTrackSizeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
486ef3df7f
LibWeb: Split GridTrackPlacementStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
402845fe00
LibWeb: Split GridTrackPlacementShorthandStyleValue out of StyleValue
2023-03-25 16:56:04 +00:00
Sam Atkins
675cb3b9da
LibWeb: Split GridAreaShorthandStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4dc99e49a1
LibWeb: Split GridTemplateAreaStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
015885f068
LibWeb: Split FrequencyStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00