/* * Copyright (c) 2026, Callum Law * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::CSS { class OpacityValueStyleValue final : public StyleValueWithDefaultOperators { public: static ValueComparingNonnullRefPtr create(NonnullRefPtr&& value) { return adopt_ref(*new (nothrow) OpacityValueStyleValue(move(value))); } virtual ~OpacityValueStyleValue() override = default; virtual void serialize(StringBuilder&, SerializationMode) const override; virtual ValueComparingNonnullRefPtr absolutized(ComputationContext const&) const override; double resolved() const { return m_value->as_number().number(); } virtual GC::Ref reify(JS::Realm& realm, FlyString const& associated_property) const override; bool properties_equal(OpacityValueStyleValue const& other) const { return m_value == other.m_value; } virtual bool is_computationally_independent() const override { return m_value->is_computationally_independent(); } private: OpacityValueStyleValue(NonnullRefPtr&& value) : StyleValueWithDefaultOperators(Type::OpacityValue) , m_value(move(value)) { } ValueComparingNonnullRefPtr m_value; }; }