Nы, как разработчик, должен понимать предметную область и ее контекст.
В данном случае ты реализуешь список фильтров, которые будут выбираться «мульти-селектом», ну, как мне кажется из увиденного. Ведь это же будет форма (да-да, фильтры это форма). Это первое.
Второе, ты должен понимать то как тебе эти данные (для твоего селекта) будут поставляться. В идеале.
Третье, ты должен понимать то как то что ты разрабатываешь будет работать, с точки зрения пользователя.
Собственно в твоем видео вопросе почти все данные, для работы есть. Не забывай что правильно поставленный вопрос, содержит большую часть ответа.
Теперь то как это можно было бы реализовать.
Вводные: у тебя в базе есть цвета, их может быть много, а может быть мало.
Если их много, то ты в верстке делишь список на две группы: те что будут отображены и те что нужно будет отобразить по запросу пользователя. По этой причине ты рисуешь 5 + кнопку «еще».
Если элементов меньше чем заявлено в ограничениях, ты показываешь список без кнопки «еще»
Теперь про кнопку «еще», данные для ее работы могут быть либо уже получены при первом запросе, либо дополнительно запрошены через ajax.
В первом случае у тебя может быть объект типа:
{
«main»: [elements]
«additional»: [elements]
}
собственно по additional ты понимаешь надо или нет рисовать кнопку «еще»
При клике на кнопку тебе надо добавить элементы из additional в блок селекта и убрать кнопку «еще».
Думаю алгоритм понятен, а загуглить как добавлять элементы ты сможешь сам 🙂 Для реализации твоей задачи не нужны библиотеки или фрэймворки.
ПС: Старайся искать понимание задачи - алгоритмы того как реализация должна выглядеть. И только потом искать инструменты для ее решения.