Skip to content

Commit 812e4fa

Browse files
feat(spark_css): add typed CssTransform and CssAngle support
Adds `CssTransform` and `CssAngle` sealed classes to `packages/spark_css/lib/src/css_types/css_transform.dart` to support type-safe CSS transform functions like `translate`, `rotate`, `scale`, `skew`, and `matrix`. Includes comprehensive tests in `packages/spark_css/test/css_transform_test.dart`. This PR also ensures strict code formatting compliance to pass CI checks.
1 parent 476bb72 commit 812e4fa

2 files changed

Lines changed: 24 additions & 21 deletions

File tree

packages/spark_css/lib/src/css_types/css_transform.dart

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,8 @@ sealed class CssTransform implements CssValue {
8585
factory CssTransform.skew(CssAngle x, [CssAngle? y]) = _CssTransformSkew;
8686

8787
/// `matrix` function.
88-
factory CssTransform.matrix(
89-
num a,
90-
num b,
91-
num c,
92-
num d,
93-
num tx,
94-
num ty,
95-
) = _CssTransformMatrix;
88+
factory CssTransform.matrix(num a, num b, num c, num d, num tx, num ty) =
89+
_CssTransformMatrix;
9690

9791
/// Multiple transforms.
9892
factory CssTransform.list(List<CssTransform> transforms) = _CssTransformList;
@@ -215,14 +209,8 @@ final class _CssTransformSkew extends CssTransform {
215209

216210
final class _CssTransformMatrix extends CssTransform {
217211
final num a, b, c, d, tx, ty;
218-
const _CssTransformMatrix(
219-
this.a,
220-
this.b,
221-
this.c,
222-
this.d,
223-
this.tx,
224-
this.ty,
225-
) : super._();
212+
const _CssTransformMatrix(this.a, this.b, this.c, this.d, this.tx, this.ty)
213+
: super._();
226214

227215
@override
228216
String toCss() => 'matrix($a, $b, $c, $d, $tx, $ty)';

packages/spark_css/test/css_transform_test.dart

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,28 @@ void main() {
3030
});
3131

3232
test('translateX', () {
33-
expect(CssTransform.translateX(CssLength.px(10)).toCss(), 'translateX(10px)');
34-
expect(CssTransform.translateX(CssLength.percent(50)).toCss(), 'translateX(50%)');
33+
expect(
34+
CssTransform.translateX(CssLength.px(10)).toCss(),
35+
'translateX(10px)',
36+
);
37+
expect(
38+
CssTransform.translateX(CssLength.percent(50)).toCss(),
39+
'translateX(50%)',
40+
);
3541
});
3642

3743
test('translateY', () {
38-
expect(CssTransform.translateY(CssLength.px(20)).toCss(), 'translateY(20px)');
44+
expect(
45+
CssTransform.translateY(CssLength.px(20)).toCss(),
46+
'translateY(20px)',
47+
);
3948
});
4049

4150
test('translate', () {
42-
expect(CssTransform.translate(CssLength.px(10)).toCss(), 'translate(10px)');
51+
expect(
52+
CssTransform.translate(CssLength.px(10)).toCss(),
53+
'translate(10px)',
54+
);
4355
expect(
4456
CssTransform.translate(CssLength.px(10), CssLength.px(20)).toCss(),
4557
'translate(10px, 20px)',
@@ -98,7 +110,10 @@ void main() {
98110
});
99111

100112
test('variable', () {
101-
expect(CssTransform.variable('transform-var').toCss(), 'var(--transform-var)');
113+
expect(
114+
CssTransform.variable('transform-var').toCss(),
115+
'var(--transform-var)',
116+
);
102117
});
103118

104119
test('raw', () {

0 commit comments

Comments
 (0)