from typing import Any, Optional

from inui.base import Base, BaseVoidElement
from inui.tailwind.utils import tw_class_to_lower


class BaseCSSValue(BaseVoidElement):
    tag: Optional[str] = None

    def __init__(self, *values) -> None:
        self.values = values

    def render(self, prettify: bool = False) -> str:
        values = ""
        if self.values:
            values += " -"
            values += "-".join(list(map(str, self.values)))
        return self.tag or tw_class_to_lower(self.__class__.__name__) + values


class BaseCSSProperty(BaseVoidElement):
    tag: Optional[str] = None
    type_: Optional[str] = None

    def __init__(self, *values, type_: str = "") -> None:
        self.values = values
        self.type_ = type_

    def render(self, prettify: bool = False) -> str:
        values = ""
        if self.values:
            values += " -"
            values += "-".join(list(map(str, self.values)))
        return self.type_ + (
            self.tag or tw_class_to_lower(self.__class__.__name__) + values
        )


class CSS(Base):
    def __init__(self, *args, **attributes: Any) -> None:
        self.attrs = attributes
        self.args = args

    def render(self, inline: bool = True, prettify: bool = False) -> str:
        if inline:
            return f'"{self._css()}"'
        return "{%s}" % self._css()

    def _css(self):
        result = ""
        for i in self.args:
            if isinstance(i, dict):
                for key, value in i.items():
                    result += f"{self._str(key)}: {self._str(value)};"
        for key, value in self.attrs.items():
            result += f"{self._str(key)}: {self._str(value)};"
        return result


class align_content(BaseCSSProperty):
    class stretch(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class flex_start(BaseCSSValue): ...

    class flex_end(BaseCSSValue): ...

    class space_between(BaseCSSValue): ...

    class space_around(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...


class align_items(BaseCSSProperty):
    class stretch(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class flex_start(BaseCSSValue): ...

    class flex_end(BaseCSSValue): ...

    class baseline(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...


class align_self(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class stretch(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class flex_start(BaseCSSValue): ...

    class flex_end(BaseCSSValue): ...

    class baseline(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...


class all(BaseCSSProperty):
    class unset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class revert(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class none(BaseCSSValue): ...


class animation(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_delay(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_direction(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class reverse(BaseCSSValue): ...

    class alternate(BaseCSSValue): ...

    class alternate_reverse(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_duration(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_fill_mode(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class forwards(BaseCSSValue): ...

    class backwards(BaseCSSValue): ...

    class both(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_iter_count(BaseCSSProperty):
    class infinite(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_name(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_play_state(BaseCSSProperty):
    class running(BaseCSSValue): ...

    class paused(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class animation_timing_fn(BaseCSSProperty):
    class ease(BaseCSSValue): ...

    class ease_in(BaseCSSValue): ...

    class ease_out(BaseCSSValue): ...

    class ease_in_out(BaseCSSValue): ...

    class linear(BaseCSSValue): ...

    class step_start(BaseCSSValue): ...

    class step_end(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class backface_visibility(BaseCSSProperty):
    class visible(BaseCSSValue): ...

    class hidden(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_attachment(BaseCSSProperty):
    class scroll(BaseCSSValue): ...

    class fixed(BaseCSSValue): ...

    class local(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_blend_mode(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class multiply(BaseCSSValue): ...

    class screen(BaseCSSValue): ...

    class overlay(BaseCSSValue): ...

    class darken(BaseCSSValue): ...

    class lighten(BaseCSSValue): ...

    class color_dodge(BaseCSSValue): ...

    class color_burn(BaseCSSValue): ...

    class hard_light(BaseCSSValue): ...

    class soft_light(BaseCSSValue): ...

    class difference(BaseCSSValue): ...

    class exclusion(BaseCSSValue): ...

    class hue(BaseCSSValue): ...

    class saturation(BaseCSSValue): ...

    class color(BaseCSSValue): ...

    class luminosity(BaseCSSValue): ...


class background_clip(BaseCSSProperty):
    class border_box(BaseCSSValue): ...

    class padding_box(BaseCSSValue): ...

    class content_box(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_image(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_origin(BaseCSSProperty):
    class border_box(BaseCSSValue): ...

    class padding_box(BaseCSSValue): ...

    class content_box(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_position(BaseCSSProperty):
    class top_left(BaseCSSValue): ...

    class top_right(BaseCSSValue): ...

    class bottom_left(BaseCSSValue): ...

    class bottom_right(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_repeat(BaseCSSProperty):
    class repeat(BaseCSSValue): ...

    class repeat_x(BaseCSSValue): ...

    class repeat_y(BaseCSSValue): ...

    class no_repeat(BaseCSSValue): ...

    class space(BaseCSSValue): ...

    class round(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class background_size(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class cover(BaseCSSValue): ...

    class contain(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom_left_rad(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom_right_ra(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_bottom_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_collapse(BaseCSSProperty):
    class separate(BaseCSSValue): ...

    class collapse(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image_outset(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image_repeat(BaseCSSProperty):
    class stretch(BaseCSSValue): ...

    class repeat(BaseCSSValue): ...

    class round(BaseCSSValue): ...

    class space(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image_slice(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image_source(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_image_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_left(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_left_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_left_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_left_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_radius(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_right(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_right_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_right_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_right_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_spacing(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top_left_radius(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top_right_radiu(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_top_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class border_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class bottom(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class box_decoration_break(BaseCSSProperty):
    class slice(BaseCSSValue): ...

    class clone(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class box_shadow(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class box_sizing(BaseCSSProperty):
    class content_box(BaseCSSValue): ...

    class border_box(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class caption_side(BaseCSSProperty):
    class top(BaseCSSValue): ...

    class bottom(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class caret_color(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class charset(BaseCSSProperty):
    tag = "@charset"


class clear(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class both(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class clip(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class clip_path(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_count(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_fill(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class balance(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_gap(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_rule(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_rule_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_rule_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_rule_width(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_span(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class all(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class column_width(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class columns(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class content(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class counter_increment(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class counter_reset(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class cursor(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class pointer(BaseCSSValue): ...

    class crosshair(BaseCSSValue): ...

    class text(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class direction(BaseCSSProperty):
    class ltr(BaseCSSValue): ...

    class rtl(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class display(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inline(BaseCSSValue): ...

    class block(BaseCSSValue): ...

    class flex(BaseCSSValue): ...

    class grid(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class empty_cells(BaseCSSProperty):
    class show(BaseCSSValue): ...

    class hide(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class filter(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_basis(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_direction(BaseCSSProperty):
    class row(BaseCSSValue): ...

    class row_reverse(BaseCSSValue): ...

    class column(BaseCSSValue): ...

    class column_reverse(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_flow(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_grow(BaseCSSProperty):

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_shrink(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class flex_wrap(BaseCSSProperty):
    class nowrap(BaseCSSValue): ...

    class wrap(BaseCSSValue): ...

    class wrap_reverse(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class float(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_face(BaseCSSProperty):
    tag = "@font-face"


class font_family(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_kerning(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class none(BaseCSSValue): ...

    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_size(BaseCSSProperty):
    class xx_small(BaseCSSValue): ...

    class x_small(BaseCSSValue): ...

    class small(BaseCSSValue): ...

    class medium(BaseCSSValue): ...

    class large(BaseCSSValue): ...

    class x_large(BaseCSSValue): ...

    class xx_large(BaseCSSValue): ...

    class larger(BaseCSSValue): ...

    class smaller(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_stretch(BaseCSSProperty):
    class ultra_condensed(BaseCSSValue): ...

    class extra_condensed(BaseCSSValue): ...

    class condensed(BaseCSSValue): ...

    class semi_condensed(BaseCSSValue): ...

    class normal(BaseCSSValue): ...

    class semi_expanded(BaseCSSValue): ...

    class expanded(BaseCSSValue): ...

    class extra_expanded(BaseCSSValue): ...

    class ultra_expanded(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_style(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class italic(BaseCSSValue): ...

    class oblique(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_variant(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class small_caps(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class font_weight(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class bold(BaseCSSValue): ...

    class bolder(BaseCSSValue): ...

    class lighter(BaseCSSValue): ...

    class weight_100(BaseCSSValue): ...

    class weight_200(BaseCSSValue): ...

    class weight_300(BaseCSSValue): ...

    class weight_400(BaseCSSValue): ...

    class weight_500(BaseCSSValue): ...

    class weight_600(BaseCSSValue): ...

    class weight_700(BaseCSSValue): ...

    class weight_800(BaseCSSValue): ...

    class weight_900(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class gap(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_area(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_auto_columns(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class max_content(BaseCSSValue): ...

    class min_content(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_auto_flow(BaseCSSProperty):
    class row(BaseCSSValue): ...

    class column(BaseCSSValue): ...

    class dense(BaseCSSValue): ...

    class row_dense(BaseCSSValue): ...

    class column_dense(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_auto_rows(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class max_content(BaseCSSValue): ...

    class min_content(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_column(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_column_end(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_column_gap(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_column_start(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_gap(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_row(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_row_end(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_row_gap(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_row_start(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class span(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_template(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_template_areas(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_template_columns(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class max_content(BaseCSSValue): ...

    class min_content(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class grid_template_rows(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class max_content(BaseCSSValue): ...

    class min_content(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class height(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class hyphens(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class manual(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class import_(BaseCSSProperty):
    tag = "@import"


class justify_content(BaseCSSProperty):
    class flex_start(BaseCSSValue): ...

    class flex_end(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class space_between(BaseCSSValue): ...

    class space_around(BaseCSSValue): ...

    class space_evenly(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class keyframes(BaseCSSProperty):
    tag = "@keyframes"


class left(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class letter_spacing(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class line_height(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class list_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class list_style_image(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class list_style_position(BaseCSSProperty):
    class inside(BaseCSSValue): ...

    class outside(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class list_style_type(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class disc(BaseCSSValue): ...

    class circle(BaseCSSValue): ...

    class square(BaseCSSValue): ...

    class decimal(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class margin(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class margin_bottom(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class margin_left(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class margin_right(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class margin_top(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class max_height(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class max_width(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class media(BaseCSSProperty):
    tag = "@media"


class min_height(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class min_width(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class object_fit(BaseCSSProperty):
    class fill(BaseCSSValue): ...

    class contain(BaseCSSValue): ...

    class cover(BaseCSSValue): ...

    class none(BaseCSSValue): ...

    class scale_down(BaseCSSValue): ...


class object_position(BaseCSSProperty):
    class top(BaseCSSValue): ...

    class bottom(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class opacity(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class order(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class outline(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class outline_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...

    class transparent(BaseCSSValue): ...


class outline_offset(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class outline_style(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class solid(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class groove(BaseCSSValue): ...

    class ridge(BaseCSSValue): ...

    class inset(BaseCSSValue): ...

    class outset(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class outline_width(BaseCSSProperty):
    class thin(BaseCSSValue): ...

    class medium(BaseCSSValue): ...

    class thick(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class overflow(BaseCSSProperty):
    class visible(BaseCSSValue): ...

    class hidden(BaseCSSValue): ...

    class scroll(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class overflow_x(BaseCSSProperty):
    class visible(BaseCSSValue): ...

    class hidden(BaseCSSValue): ...

    class scroll(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class overflow_y(BaseCSSProperty):
    class visible(BaseCSSValue): ...

    class hidden(BaseCSSValue): ...

    class scroll(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class padding(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class padding_bottom(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class padding_left(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class padding_right(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class padding_top(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class page_break_after(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class always(BaseCSSValue): ...

    class avoid(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class page_break_before(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class always(BaseCSSValue): ...

    class avoid(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class page_break_inside(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class avoid(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class perspective(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class perspective_origin(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class pointer_events(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class position(BaseCSSProperty):
    class static(BaseCSSValue): ...

    class relative(BaseCSSValue): ...

    class absolute(BaseCSSValue): ...

    class fixed(BaseCSSValue): ...

    class sticky(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class quotes(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class right(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class row_gap(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class scroll_behavior(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class smooth(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class table_layout(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class fixed(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_align(BaseCSSProperty):
    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class justify(BaseCSSValue): ...

    class start(BaseCSSValue): ...

    class end(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_align_last(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class left(BaseCSSValue): ...

    class right(BaseCSSValue): ...

    class center(BaseCSSValue): ...

    class justify(BaseCSSValue): ...

    class start(BaseCSSValue): ...

    class end(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_decoration(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class underline(BaseCSSValue): ...

    class overline(BaseCSSValue): ...

    class line_through(BaseCSSValue): ...

    class blink(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_decoration_color(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_decoration_line(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class underline(BaseCSSValue): ...

    class overline(BaseCSSValue): ...

    class line_through(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_decoration_style(BaseCSSProperty):
    class solid(BaseCSSValue): ...

    class double(BaseCSSValue): ...

    class dotted(BaseCSSValue): ...

    class dashed(BaseCSSValue): ...

    class wavy(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_indent(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_justify(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class none(BaseCSSValue): ...

    class inter_word(BaseCSSValue): ...

    class distribute(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_overflow(BaseCSSProperty):
    class clip(BaseCSSValue): ...

    class ellipsis(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_shadow(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class text_transform(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class capitalize(BaseCSSValue): ...

    class uppercase(BaseCSSValue): ...

    class lowercase(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class top(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transform(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transform_origin(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transform_style(BaseCSSProperty):
    class flat(BaseCSSValue): ...

    class preserve_3d(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transition(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transition_delay(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transition_duration(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transition_property(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class all(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class transition_timing_fn(BaseCSSProperty):
    class ease(BaseCSSValue): ...

    class linear(BaseCSSValue): ...

    class ease_in(BaseCSSValue): ...

    class ease_out(BaseCSSValue): ...

    class ease_in_out(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class user_select(BaseCSSProperty):
    class none(BaseCSSValue): ...

    class text(BaseCSSValue): ...

    class all(BaseCSSValue): ...

    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class vertical_align(BaseCSSProperty):
    class baseline(BaseCSSValue): ...

    class sub(BaseCSSValue): ...

    class super(BaseCSSValue): ...

    class text_top(BaseCSSValue): ...

    class text_bottom(BaseCSSValue): ...

    class middle(BaseCSSValue): ...

    class top(BaseCSSValue): ...

    class bottom(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class visibility(BaseCSSProperty):
    class visible(BaseCSSValue): ...

    class hidden(BaseCSSValue): ...

    class collapse(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class white_space(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class nowrap(BaseCSSValue): ...

    class pre(BaseCSSValue): ...

    class pre_wrap(BaseCSSValue): ...

    class pre_line(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class width(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class word_break(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class break_all(BaseCSSValue): ...

    class keep_all(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class word_spacing(BaseCSSProperty):
    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class word_wrap(BaseCSSProperty):
    class normal(BaseCSSValue): ...

    class break_word(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class writing_mode(BaseCSSProperty):
    class horizontal_tb(BaseCSSValue): ...

    class vertical_rl(BaseCSSValue): ...

    class vertical_lr(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...


class z_index(BaseCSSProperty):
    class auto(BaseCSSValue): ...

    class inherit(BaseCSSValue): ...

    class initial(BaseCSSValue): ...

    class unset(BaseCSSValue): ...
