Получить разные темы в начальной загрузке в разных видах

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

Я хотел бы иметь возможность написать что-то подобное

На странице 1:

@import input-theming.css... использовать стили по умолчанию для кнопок

На странице 2:

@import button-theming.css... использовать стили для ввода по умолчанию

Я уже думал о модульности моего custom.scss в компонентах, так что я в каждом компоненте создаю отдельную тему, такую ​​как вводы, кнопки, таблицы и т. Д. Но тогда мне нужно будет создать файл custom.scss для каждого комбинация тех модулей, которая кажется сложной.

То, что я хотел бы, это способ вернуться к поведению по умолчанию некоторых частей начальной загрузки, хотя я настроил их по-другому в файле custom.scss. Возможно ли это без создания разных файлов custom.scss, которые содержат только разные части начальной загрузки?

1 ответ

SASS позволяет вложить импорт. Следовательно, вы можете использовать родительский класс для каждой "темы" (комбинация настроек), а затем добавить соответствующий CSS-класс темы в родительский контейнер HTML каждой страницы (html,body,.container и т. Д.). Это позволяет вам сохранить все переопределения / изменения SASS в одном custom.scss файл.

@import "bootstrap/functions";
@import "bootstrap/mixins";
@import "bootstrap/variables";

.theme-1 {
    /* change the button style */
    .btn-primary {
        @include button-variant(green, green);
    }
}

.theme-2 {
    /* change the input style */
    $input-bg: #ddd;
    @import "bootstrap/forms"
}

@import "bootstrap"

HTML страница 1 (пользовательские кнопки)

<body class="theme-1">    
    <div class="container py-2">
        <div class="row">
            <div class="col">
                <div class="input-group">
                    <input type="text" class="form-control" placeholder="Username">
                    <div class="input-group-append">
                        <button class="btn btn-primary" type="button" id="addon">Button</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

HTML страница 2 (пользовательский ввод)

<body class="theme-2">    
    <div class="container py-2">
        <div class="row">
            <div class="col">
                <div class="input-group">
                    <input type="text" class="form-control" placeholder="Username">
                    <div class="input-group-append">
                        <button class="btn btn-primary" type="button" id="addon">Button</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

демонстрация

Другие вопросы по тегам