/* * Copyright (c) 2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::CSS { // https://drafts.csswg.org/cssom/#cssmarginrule class CSSMarginRule final : public CSSRule { WEB_PLATFORM_OBJECT(CSSMarginRule, CSSRule); GC_DECLARE_ALLOCATOR(CSSMarginRule); public: [[nodiscard]] static GC::Ref create(JS::Realm&, FlyString name, GC::Ref); virtual ~CSSMarginRule() override = default; String name() const { return m_name.to_string(); } GC::Ref style() { return m_style; } GC::Ref style() const { return m_style; } private: CSSMarginRule(JS::Realm&, FlyString name, GC::Ref); virtual void initialize(JS::Realm&) override; virtual String serialized() const override; virtual void visit_edges(Visitor&) override; FlyString m_name; GC::Ref m_style; }; bool is_margin_rule_name(StringView); }