/* * Copyright (c) 2024-2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::CSS { class DimensionStyleValue : public StyleValue { public: virtual ~DimensionStyleValue() override = default; virtual double raw_value() const = 0; virtual StringView unit_name() const = 0; virtual Vector tokenize() const override { return { Parser::Token::create_dimension(raw_value(), FlyString::from_utf8_without_validation(unit_name().bytes())) }; } protected: explicit DimensionStyleValue(Type type) : StyleValue(type) { } }; }