/// Правило для CSS блоку: селектор і властивості, обгорнуті в фігурні дужки.
css_block = { selector ~ WHITESPACE* ~ "{" ~ WHITESPACE* ~ properties ~ WHITESPACE* ~ "}" }
/// Правило для CSS селектора. Може бути ідентифікатором класу, ID або тегу.
selector = { ("#" ~ ASCII_ALPHANUMERIC+ | "." ~ ASCII_ALPHANUMERIC+ | ASCII_ALPHANUMERIC+) }
/// Правило для CSS властивості, що складається з ідентифікатора та значення.
property = { identifier ~ ": " ~ value ~ ";" }
/// Правило для списку властивостей, які можуть бути застосовані до CSS селектора.
properties = { property+ }
/// Правило для значення CSS властивості, яке може бути кольором, розміром або ідентифікатором.
value = { color | dimension | identifier }
/// Правило для вимірювання розміру в CSS, наприклад, "10px", "2em".
dimension = { DIGIT+ ~ ("." ~ DIGIT+)? ~ (("px" | "em" | "%" | "pt")) }
/// Правило для цифри (0-9).
DIGIT = { '0'..'9' }
/// Правило для шістнадцяткових кольорів, наприклад, "#ff0000".
hex_color = { "#" ~ hex_digit ~ hex_digit ~ hex_digit ~ hex_digit ~ hex_digit ~ hex_digit }
/// Правило для шістнадцяткової цифри (0-9, a-f).
hex_digit = { "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "a" | "b" | "c" | "d" | "e" | "f" }
/// Правило для кольору, яке може бути одним із стандартних кольорів або шістнадцятковим значенням.
color = { "blue" | "red" | "green" | "yellow" | "black" | "white" | hex_color }
/// Правило для ідентифікатора, який складається з алфавітних символів та цифр.
identifier = { ASCII_ALPHANUMERIC+ }
/// Правило для пробілів та символів нового рядка, що використовуються для відокремлення елементів.
WHITESPACE = _{ " " | "\t" | "\n" | "\r" }