Основой для всего этого неистового веселья вытступает блок .random. Блок с классом .random определяет размер и то, какого цвета будет фон всего прямоугольника.
Второй класс на этом блоке определяет его цвет:
.random__green— зелёный #00e2b6;.random__pink— розовый #eb038b;.random__red— красный #f7431a;.random__violet— фиолетовый #6223db;.random__yellow— жёлтый #ffe31a;
В целом, то все цвета, котоыре используются в проекте и могут быть применены к следующим блокам.
Геометрический блок, это вторая фигура, которая накладывается сверху. Она определяется классом .random__rect.
Положение фигуры определяется её кординатами слева и сверху, а так же размерами и задётся через style. Любое свойство кратно 25%. Ширина и высота не могут быть равны 0%. Верх и низ не могут быть равны 100%. Ширина и высота не может одновремнно быть равна 100%.
top: 0%/25%/50%/75%;left: 0%/25%/50%/75%;width: 25%/50%/75%/100%;height: 25%/50%/75%/100%;
Цвет фигуры задаёт классы:
.random__green— зелёный #00e2b6;.random__pink— розовый #eb038b;.random__red— красный #f7431a;.random__violet— фиолетовый #6223db;.random__yellow— жёлтый #ffe31a;
При этом действуют некоторые правила. Геометрический блок не может быть того же цвета, что и основа. При этом два правила соответствия цвета:
.random__pink— как основа не может сочетаться с.random__redкак фигура;.random__red— как основа не может сочетаться с.random__pinkкак фигура;
Для Геометрического блока так же может бюыть задан наклон.
none- нет наклона..random__skew-plus— влево;.random__skew-minus— вправо;
Паттерн накладывается сверху и имеет пять параметров. Размер и положение, цвет, тип, размер паттерна.
Основа паттерна определяется классом .random__shape. Размер самих иконок в паттерне классами:
.random__pattern-small;.random__pattern-medium;.random__pattern-large;
Чтобы определить тип паттерна и его цвет надо добавить класс собрав его по принципу — .random__{тип}-{цвет};
Где тип:
bracket;plus;slash;tag;
Цвета:
green— зелёный #00e2b6;pink— розовый #eb038b;red— красный #f7431a;violet— фиолетовый #6223db;yellow— жёлтый #ffe31a;
Таким образом мы получаем набор из следующих вариаций:
-
.random__bracket-green -
.random__bracket-pink -
.random__bracket-red -
.random__bracket-violet -
.random__bracket-yellow -
.random__plus-green -
.random__plus-pink -
.random__plus-red -
.random__plus-violet -
.random__plus-yellow -
.random__slash-green -
.random__slash-pink -
.random__slash-red -
.random__slash-violet -
.random__slash-yellow -
.random__tag-green -
.random__tag-pink -
.random__tag-red -
.random__tag-violet -
.random__tag-yellow
Цветовые варианты работают таким образом, что цвет основы, цвет фигуры и паттерна должен отличаться. При этом, если в основе или фигуре есть pink или red, то в паттерне эти цвета вместе использовтаься не могут.
Положение фигуры определяется её кординатами слева и сверху, а так же размерами и задётся через style. Любое свойство кратно 25%. Ширина и высота не могут быть равны 0%. Верх и низ не могут быть равны 100%. Ширина и высота не может одновремнно быть равна 100%.
top: 0%/25%/50%/75%;left: 0%/25%/50%/75%;width: 25%/50%/75%/100%;height: 25%/50%/75%/100%;
Чтобы в точности воспроизвести паттерн нам необходимо знать следующий параметры:
- цвет блока
(green, pink, red, violet, yellow); - цвет геометрического блока
(green, pink, red, violet, yellow); - скос геометрического блока (
none, plus, minus) - позиция и размер геометрического блока:
- top
(0%, 25%, 50%, 75%); - left
(0%, 25%, 50%, 75%); - width
(25%, 50%, 75%, 100%); - height
(25%, 50%, 75%, 100%);
- top
- тип паттерна (
bracket, plus, slash, tag); - цвет паттерна
(green, pink, red, violet, yellow); - масштаб паттерна
(small, medium, large); - позиция и размер паттерна:
- top
(0%, 25%, 50%, 75%); - left
(0%, 25%, 50%, 75%); - width
(25%, 50%, 75%, 100%); - height
(25%, 50%, 75%, 100%);
- top
В формате JSON это можно описать как:
{
"block_color": "red",
"geometric_color": "green",
"geometric_scew": "minus",
"geometric_size": {
"top": "0%",
"left": "25%",
"width": "100%",
"height": "50%"
},
"pattern_type": "plus",
"pattern_color": "yellow",
"pattern_zoom": "small",
"pattern_size": {
"top": "0%",
"left": "25%",
"width": "100%",
"height": "50%"
}
}