Развивайте проект следуя гибкой дизайн-системе. Сокращайте время и минимизируйте код

Простые переменные формата <уровень-элемент-свойство> --v-block-title-padding определенные в контексте класса компонента, и константы формата <уровень-тип-значение> --c-content-indent-big вместо произвольных значений решают более 90% задач, сокращают код, стандартизируют дизайн, улучшают понимание и облегчают масштабирование.

image alt
before
after

Модификация реализованная классическими приёмами

<section class="block block--hero">
    <div class="block-conteiner block-conteiner--hero">
        <h1 class="block-title block-title--hero">
            Hello World
        </h1>
        <p class="block-subtitle bloc-subtitle--hero">
                Это простой пример создания модификации
компонента классическими приемами
        </p>
    </div>
</section>

<style>
    .block-conteiner--hero {
        padding: 300px 40px;
    }
    .block-title--hero {
        font-size: 80px;
        font-weight: 900;
        margin-bottom: 60px;
    }
    .block-subtitle--hero {
        font-size: 40px;
        font-weight: 500;
    }
    @media(max-width: 1200px) {
        .block-conteiner--hero {
            padding: 200px 40px;
        }
        .block-title--hero {
          font-size: 60px;
            margin-bottom: 40px;
        }
        .block-subtitle--hero {
            font-size: 30px;
        }
    }
    @media(max-width: 768px) {
        .block-conteiner--hero {
            padding: 100px 30px;
        }
        .block-title--hero {
            font-size: 40px;
            margin-bottom: 20px;
        }
        .block-subtitle--hero {
            font-size: 20px;
        }
    }
</style>

Модификация блока реализованная по CLVC методологии

<section class="block block--hero">
        <div class="block-conteiner">
            <h1 class="block-title">
                Hello World
            </h1>
            <p class="block-subtitle">
                Это простой пример создания модификации
компонента с использованием CLVC методологии
            </p>
        </div>
</section>

<style>
    .block-hero {
        --v-block-conteiner--padding: var(--c-block-indent-big) var(--c-block-indent-lr);
        --v-block-title--font-size: var(--c-title-size-big);
        --v-block-title--font-weight: 900;
        --v-block-title--margin: 0 0 var(--c-content-indent-big);
        --v-block-sub-title--font-size: var(--c-text-size-big);
        --v-block-sub-title--font-weight: 500;
    }
</style>

CLVC


CLVC - аббревиатура от основных элементов на которых строиться вся методология: Constant, Level, Variable, Context.

  • Constant

    Константы — это ДНК дизайн-системы проекта. Константы определяют палитру всех визуально значимых параметров стилей: типографики, цветов, размеров и параметры визуальных эффектов

    Константы едины для дизайнеров и фронт-энд разработчиков и позволяют исключить любые споры на предмет вписывается дизайн нового компонента в дизайн систему или нет.

  • Level

    Есть три базовых уровня вложенности — блок, карточка, элемент, но в конкретном проекте может быть и больше, все упирается в задачу. Разделение значений и элементов по уровням позволяет просто ориентироваться при обращении к элементу и выбора нужной константы, А так же жестко разделить диапазоны значений применяемых на каждом уровне вложенности.

  • Variable

    Переменные используются для определения значений параметров стилей. Переменные нужны для возможности легко изменять значения не дублируя обращение к селекторам каждого элемента, а определять их массово в рамках группы или отдельного компонента, что сильно упрощает разработку и сокращает объем кода.

  • Context

    Контекст - область в рамках которой задаётся конкретный дизайн для элементов и соответвенyо существуют те, или иные значения переменных CSS. Контекстом может быть что угодно, конкретная страница, группа блоков или конкретный вид блока.

Гибкие стандарты

За частую большинство UI правила в проекте описаны как конечные макеты атомов и компонентов, а когда дизайн задача выходит за их рамки появляется поле для бесконечных правок и обсуждений.

UI в CLVC описан наборами допустимых значений на том или ином уровне интерфейса, что дает гибкость в решении новых задач, при этом сохраняя визуальную стандартизацию и преемственность в каждом новом шаблоне.

Для проекта любого размера

Изначально мы сами предполагали что clvc это про больший проекты, а в малых это избыточное усложнение.

На практике оказалось что даже простенький одностраничный сайт из 10 блоков в действительности можно представить как 2-3 базовых блока и их модификации. Создание даже самых малых проектов по методологии CLVC оправданно сокращением времени и затрат на реализацию проекта.

При этом вполне закономерно можно утверждать, чем больше проект - тем выше эффективность внедрения CLVC

Простата внедрения

По мимо создания новых проектов, CLVC методологию можно легко внедрить в работающие проекты. Внедрение не может проходить не монолитно, а поэтапно с возможностью использования каждого внедренного элемента методологии по отдельности.

Начать можно с определения и внедрения констант. Замените поочередно все произвольные параметры стилей описывающие дизайн на константы.

После замены всех произвольных значений на константы необходимо определить какие для проекта шаблоны являются базовыми выделить и реализовать их по методологии CLVC.

Когда готовы базовые шаблоны можно один за другим заменить все оставшиеся шаблоны на модификации шаблонов реализованные по методологии CLVC.

Ход развития проекта

Мы прошли долгий путь от теории к практики применения и продолжаем работать над улучшением нашей методологии на практике

  • Сегодня

    CLVC проходит обкатку на реальных веб-проектах совместно с YudinLab и Aince

  • Скоро

    Мы уже готовим к релизу фреймворк CLVC.CSS и документацию по нему

  • В планах

    Курс обучения по работе с CLVC методологией для дизайнеров и разработчиков

    Готовые темы для быстрого старта

    Плагин для Figma позволяющий работать с константами и экспортирующий готовы CLVC код

Контакты
Открыты к общению и взаимодействию

Вам понравилась идея и вы хотели бы понять подойдёт ли CLVC для вашего проекта, напишите нам в телеграмм и мы все расскажем, покажем и поможем внедрить

Хотите присоединиться к команде? Пишите, задач много и для каждого найдется дело

Не хотите пропустить релиз CLVC.CSS

@clvc_bot

А еще вы можете поддержать наш проект купив чашку кофе или даже целую пиццу команде CLVC, или стать спонсором проекта и получить баннер спонсора на этом сайте. Это поможет ускорить нашу работу, а вам + в карму, почет и уважение