tdkomplekt / laravel-bootstrap-components
Laravel Bootstrap Blade Components
Installs: 2 238
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 1
Language:Blade
Requires
- laravel/framework: ^10.0
README
Этот пакет содержит набор полезных компонентов Bootstrap Laravel Blade. Он продвигает принципы DRY и позволяет вам сохранять ваш HTML красивым и чистым. Компоненты включают оповещения, значки, кнопки, формы ввода (с автоматической обратной связью об ошибках), раскрывающиеся списки, навигацию, нумерацию страниц (адаптивную) и многое другое. Компоненты поставляются со встроенной интеграцией Laravel Livewire, поэтому вы можете использовать их с Livewire или без него.
Документация
Требования
- php 8
- Laravel 10
- Сначала необходимо установить Bootstrap 5 через веб-пакет laravel/ui
- Для использования значков должен быть установлен Font Awesome v6 или ниже.
Установка
composer require tdkomplekt/laravel-bootstrap-components
Примеры
Ссылка с изображением:
<!-- Logo --> <x-bs::link url="{{ url('/') }}" class="logo"> <x-bs::img asset="{{ asset('assets/images/logo.png') }}" width="37" height="37" class="logo__image" alt="{{ __('Logo') }}" /> </x-bs::link>
«Спиннер» стандартного черного цвета (для смены цвета используем аттрибут color):
<!-- Spinner --> <x-bs::spinner /> <x-bs::spinner color="success" />
Компоненты
Alert
Оповещение:
<x-bs::alert :label="__('It was successful!')" color="info" dismissible />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка для отображения, также можно поместить вslot
color
: Bootstrap цветprimary
,danger
,success
dismissible
: добавить кнопку закрытия
Badge
Бейдж / Значок:
<x-bs::badge :label="__('Notification')" color="warning" />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка для отображения, также можно поместить вslot
color
: Bootstrap цветprimary
,danger
,success
rounded
: круглый стиль
Button
Кнопка:
<x-bs::button :label="__('Login')" color="primary" size="lg" route="login" />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка для отображения, также можно поместить вslot
color
: Bootstrap цветprimary
,danger
,success
size
: размерsm
,lg
type
: типbutton
,submit
route
: устанавливает вhref
путьurl
: устанавливает вhref
ссылкуhref
: устанавливает вhref
что-то свое (#)dismiss
: аттр.data-bs-dismiss
значениеalert
,modal
toggle
: аттр.data-bs-toggle
значениеcollapse
,dropdown
click
: Livewire действие на кликconfirm
: запрашивает у пользователя подтверждение при нажатии
Card
Карточка:
<x-bs::card :label="__('This is some text within a card body.')" title="{{ __('My first card') }}" />
Доступные аттрибуты и слоты
label
: метка для отображения, также можно поместить вslot
border
: цвет обводкиprimary
,danger
,success
title
: заголовокsubtitle
: подзаголовокimage
: ссылка на изображение
Check
Чекбокс:
<x-bs::check :label="__('Agree')" :checkLabel="__('I agree to the TOS')" :help="__('Please accept the TOS.')" :is_checked="$data->is_show" switch model="agree" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомcheckLabel
: метка для отображения рядом с вводомhelp
: вспомогательная метка для отображения под вводомis_checked
: устанавливает статус переключателяswitch
: оформить как переключательmodel
: Livewire model keylazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Close
Кнопка закрытия:
<x-bs::close dismiss="modal" />
Доступные аттрибуты и слоты
color
: Bootstrap цвет иконкиwhite
dismiss
: аттр.data-bs-dismiss
значениеalert
,modal
Color
Выбор цвета:
<x-bs::color :label="__('Favorite Color')" :prepend="__('I like')" :append="_('the most.')" :help="__('Please pick a color.')" model="favorite_color" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомicon
: Font Awesome название иконкиcog
,envelope
и т.д.prepend
: аддон для отображения перед вводом, можно использовать через именованный слотappend
: аддон для отображения после ввода, можно использовать через именованный слотsize
: размерsm
,lg
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keylazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Datalist
Список данных:
<x-bs::datalist :label="__('City Name')" :options="['Toronto', 'Minsk', 'Las Vegas']" :prepend="__('I live in')" :append="_('right now.')" :help="__('Please enter your city.')" model="city_name" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомoptions
: массив опций ввода, например.['Red', 'Blue']
icon
: Font Awesome название иконкиcog
,envelope
и т.д.prepend
: аддон для отображения перед вводом, можно использовать через именованный слотappend
: аддон для отображения после ввода, можно использовать через именованный слотsize
: размерsm
,lg
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keydebounce
: время в мс для привязки данных Livewire к клавиатуре, например.500
lazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Desc
Список описания:
<x-bs::desc :term="__('ID')" :details="$user->id" />
Доступные аттрибуты и слоты
tern
: термин списка описанийdetails
: детали списка описаний также можно поместить вslot
date
: дата для использования вместо подробностей (для использования с Laravel Timezone)
Dropdown
Выпадающий список:
<x-bs::dropdown :label="__('Filter')" color="danger" > <x-bs::dropdown-item :label="__('By Name')" click="$set('filter', 'name')" /> <x-bs::dropdown-item :label="__('By Age')" click="$set('filter', 'age')" /> </x-bs::dropdown>
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка раскрывающегося списка для отображения, может использоваться через именованный слотitems
: выпадающие элементы, также можно поместить вslot
color
: цветprimary
,danger
,success
size
: размерsm
,lg
dropdown_class
: классы для родительского dropdowndropdown_menu_class
: классы для меню dropdownicon_toggle
: показывать стрелочку
Dropdown Item
Элемент выпадающего списка:
<x-bs::dropdown-item :label="__('Login')" route="login" />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка раскрывающегося списка для отображения, может использоваться через именованный слотroute
: устанавливает вhref
путьurl
: устанавливает вhref
ссылкуhref
: устанавливает вhref
что-то свое (#)
Form
Форма (с полями):
<x-bs::form submit="login"> <x-bs::input :label="__('Email')" type="email" model="email"/> <x-bs::input :label="__('Password')" type="password" model="password"/> <x-bs::button :label="__('Login')" type="submit"/> </x-bs::form>
Доступные аттрибуты и слоты
route
: устанавливает вhref
путьurl
: устанавливает вhref
ссылкуhref
: устанавливает вhref
что-то свое (#)submit
: Действие Livewire при отправке
Icon
Font Awesome иконка:
<x-bs::icon name="bars" />
Доступные аттрибуты и слоты
name
: Font Awesome название иконкиcog
,rocket
и т.д.style
: Font Awesome стиль иконкиsolid
,regular
,brands
size
: Font Awesome размер иконкиsm
,lg
,3x
,5x
color
: Bootstrap цветprimary
,danger
,success
spin
: устанавливает для иконки анимацию вращенияpulse
: устанавливает для иконки анимацию пульсацииbeat
: устанавливает для иконки анимацию битаflip
: устанавливает для иконки анимацию переворотаshake
: устанавливает для иконки анимацию тряскиrotate_90
: поворачивает иконку на 90° (по часовой)rotate_180
: поворачивает иконку на 180° (по часовой)rotate_270
: поворачивает иконку на 270° (по часовой)
Img
Изображение:
<x-bs::img asset="images/logo.png" height="24" alt="{{ __('Company logo') }}" rounded />
Доступные аттрибуты и слоты
asset
: устанавливает вsrc
ссылку/содержимоеsrc
: устанавливает вsrc
fluid
: устанавливает изображение полной шириныthumbnail
: устанавливает для изображения стиль миниатюрrounded
: устанавливает изображение с закругленными углами
Input
Поле ввода:
<x-bs::input :label="__('Email Address')" type="email" :help="__('Please enter your email.')" model="email_address" > <x-slot name="prepend"> <i class="fa fa-envelope"></i> </x-slot> </x-bs::input>
Доступные аттрибуты и слоты
label
: метка для отображения над вводомtype
: тип поляtext
,email
icon
: Font Awesome название иконкиcog
,envelope
и т.д.prepend
: аддон для отображения перед вводом, можно использовать через именованный слотappend
: аддон для отображения после ввода, можно использовать через именованный слотsize
: размерsm
,lg
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keydebounce
: время в мс для привязки данных Livewire к клавиатуре, например.500
lazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Input-floating
Поле ввода:
<x-bs::input-floating :label="__('Email Address')" type="email" name="email" model="login_email" class="mb-1" value="{{ old('email') }}" required="required" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомtype
: тип поляtext
,email
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keydebounce
: время в мс для привязки данных Livewire к клавиатуре, например.500
lazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Link
Ссылка:
<x-bs::link :label="__('Users')" route="users" />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка для отображения, также можно поместить вslot
route
: устанавливает вhref
путьurl
: устанавливает вhref
ссылкуhref
: устанавливает вhref
что-то свое (#)
Nav Dropdown
Выпадающий список в навигации:
<x-bs::nav-dropdown :label="Auth::user()->name" > <x-bs::dropdown-item :label="__('Update Profile')" click="$emit('showModal', 'profile.update')" /> <x-bs::dropdown-item :label="__('Logout')" click="logout" /> </x-bs::nav-dropdown>
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метка раскрывающегося списка для отображения, может использоваться через именованный слотitems
: выпадающие элементы, также можно поместить вslot
Nav Link
Ссылка в навигации:
<x-bs::nav-link :label="__('Users')" route="users" />
Доступные аттрибуты и слоты
icon
: Font Awesome название иконкиcog
,envelope
и т.д.label
: метку для отображения, также можно поместить вslot
route
: устанавливает вhref
путьurl
: устанавливает вhref
ссылкуhref
: устанавливает вhref
что-то свое (#)
Pagination
Адаптивные ссылки страниц:
<x-bs::pagination :links="App\Models\User::paginate()" justify="center" />
Доступные аттрибуты и слоты
links
: модели Laravel с постраничной разбивкойjustify
: Bootstrap положение на страницеstart
,end
Progress
Полоса прогресса:
<x-bs::progress :label="__('25% Complete')" percent="25" color="success" height="10" animated striped />
Доступные аттрибуты и слоты
label
: метка для отображения внутри индикатора выполненияpercent
: процент индикатора выполненияcolor
: Bootstrap цветprimary
,danger
,success
height
: высота индикатора выполнения в пикселяхanimated
: анимировать индикатор выполненияstriped
: используйте полосатый стиль для индикатора выполнения
Radio
Радио выбор:
<x-bs::radio :label="__('Gender')" :options="['Male', 'Female']" :help="__('Please select your gender.')" switch model="gender" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомoptions
: массив выбора['Red', 'Blue']
help
: вспомогательная метка для отображения под вводомswitch
: устанавливает ввод для использования стиля переключенияmodel
: Livewire model keylazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Select
Выпадающий список:
<x-bs::select :label="__('Your Country')" :placeholder="__('Select Country')" :options="['Australia', 'Canada', 'Belarus']" :prepend="__('I live in')" :append="_('right now.')" :help="__('Please select your country.')" model="your_country" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомplaceholder
: заполнитель для пустого первого вариантаoptions
: массив выбора['Red', 'Blue']
icon
: Font Awesome название иконкиcog
,envelope
и т.д.prepend
: аддон для отображения перед вводом, можно использовать через именованный слотappend
: аддон для отображения после ввода, можно использовать через именованный слотsize
: размерsm
,lg
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keylazy
: привязать данные Livewire при измененииhelper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Spinner
Спиннер (индикатор загрузки):
<x-bs::spinner size="sm" />
Доступные аттрибуты и слоты
spinner
: тип иконкиborder
,grow
color
: Bootstrap цветprimary
,danger
,success
text
: текстsize
: размерsm
,lg
SVG
Импорт SVG изображений (в код):
<x-bs::svg icon="remainder" path="cart/product" />
Доступные аттрибуты и слоты
icon
: название картинки/файла, которое находится по пути config('laravel-bootstrap-components.svg_icons_public_path')path
: дополнительный путь к файлу (относительно пути в конфиге)
Textarea
Текстовая область:
<x-bs::textarea :label="__('Biography')" rows="5" :help="__('Please tell us about yourself.')" model="biography" />
Доступные аттрибуты и слоты
label
: метка для отображения над вводомicon
: Font Awesome название иконкиcog
,envelope
и т.д.prepend
: аддон для отображения перед вводом, можно использовать через именованный слотappend
: аддон для отображения после ввода, можно использовать через именованный слотsize
: размерsm
,lg
help
: вспомогательная метка для отображения под вводомmodel
: Livewire model keylazy
: привязать данные Livewire при измененииdebounce
: время в мс для привязки данных Livewire к клавиатуре, например.500
helper_title
: добавить иконку помощника (tooltip при наведении)helper_icon
: иконка помощникаhelper_placement
: направление tooltip
Пользовательские изменения
View
Используйте свои собственные представления, опубликовав представления пакета:
php artisan vendor:publish --tag=laravel-bootstrap-components:views
Теперь можете отредактировать файлы внутри resources/views/vendor/bs
.
Пакет будет использовать эти файлы для рендеринга компонентов.
Icons
Используйте свои собственные значки шрифтов, опубликовав конфигурацию пакета:
php artisan vendor:publish --tag=laravel-bootstrap-components:config
Теперь можете отредактировать значение icon_class_prefix
внутри config/laravel-bootstrap-components.php
.
Пакет будет использовать этот класс для рендеринга значков.