Please wait...
Page is loading

Reduced motion

BS4 theme display is an enhancement of BS Display .

Getting started

To use BS4 .collapse-icon simply include bs4 theme in your bundle file

//= require vendor/bootstrap-4.4.1-iplan-theme.bundle

Floating label

To use floating label:

.form-row
  .col-24.col-md-12
    .form-group.floating-label
      =text_field_tag "floating-label-default-behaviour", nil, class: 'form-control', placeholder: true
      =label_tag "floating-label-default-behaviour", 'floating label'

  .col-24.col-md-12
    .form-group.floating-label.floating-label-fixed
      =text_field_tag "fixed-floating-label-default-behaviour", nil, class: 'form-control', placeholder: 'this is a placeholder'
      =label_tag "fixed-floating-label-default-behaviour", 'fixed floating label'

Modals

=button_tag 'stacked modal 0', class: 'btn btn-light', 'data-toggle': "modal", 'data-target': "#stacked-modal-0", type: 'button'

.modal#stacked-modal-0{tabindex: '-1'}
  .modal-dialog
    .modal-content
      .modal-header
        %h5.modal-title='Stacked modal - 0'
        =button_tag class: 'close', 'data-dismiss': 'modal', type: 'button' do
          %span ×
      .modal-body
        =button_tag 'stacked modal 1', class: 'btn btn-light btn-block mb-2', data: {toggle: 'modal', target: '#stacked-modal-1', stack: 'modal'}, type: 'button'
        =button_tag 'modal 1', class: 'btn btn-light btn-block mb-2', 'data-toggle': "modal", 'data-target': "#stacked-modal-1", type: 'button'
        -10.times do
          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
      .modal-footer
        =button_tag 'close', type: 'button', class: 'btn-block btn btn-secondary', 'data-dismiss': "modal"

.modal#stacked-modal-1{tabindex: '-1'}
  .modal-dialog.modal-lg
    .modal-content
      .modal-header
        %h5.modal-title='Stacked modal - 1'
        =button_tag class: 'close', 'data-dismiss': 'modal', type: 'button' do
          %span ×
      .modal-body
        =button_tag 'stacked modal 2', class: 'btn btn-light btn-block mb-2', data: {toggle: 'modal', target: '#stacked-modal-2', stack: 'modal'}, type: 'button'
        =button_tag 'modal 2', class: 'btn btn-light btn-block mb-2', 'data-toggle': "modal", 'data-target': "#stacked-modal-2", type: 'button'
        Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
      .modal-footer
        =button_tag 'close', type: 'button', class: 'btn-block btn btn-secondary', 'data-dismiss': "modal"

.modal#stacked-modal-2{tabindex: '-1', 'data-backdrop': "static"}
  .modal-dialog.modal-right
    .modal-content
      .modal-header
        %h5.modal-title='Stacked modal - 2'
        =button_tag class: 'close', 'data-dismiss': 'modal', type: 'button' do
          %span ×
      .modal-body
        =button_tag 'stacked modal 3', class: 'btn btn-light btn-block mb-2', data: {toggle: 'modal', target: '#stacked-modal-3', stack: 'modal'}, type: 'button'
        =button_tag 'modal 3', class: 'btn btn-light btn-block mb-2', 'data-toggle': "modal", 'data-target': "#stacked-modal-3", type: 'button'
        -10.times do
          Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
      .modal-footer
        =button_tag 'close', type: 'button', class: 'btn-block btn btn-secondary', 'data-dismiss': "modal"

.modal#stacked-modal-3{tabindex: '-1', 'data-backdrop': "static"}
  .modal-dialog.modal-sm
    .modal-content
      .modal-header
        %h5.modal-title='Stacked modal - 3'
        =button_tag class: 'close', 'data-dismiss': 'modal', type: 'button' do
          %span ×
      .modal-body
        Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
      .modal-footer
        =button_tag 'close', type: 'button', class: 'btn-block btn btn-secondary', 'data-dismiss': "modal"

System toasts

-load_page_path ||= built_in_layouts_layouts_path(show_system_toast: true)
-if params[:show_system_toast] === 'true'
  -content_for :system_toasts do
    .toast.hide{role: 'alert', aria: {live: "assertive", atomic: "true"}, class: "", data: {autohide: 'false', delay: 5000}}
      .toast-header
        %i.far.fa-info-circle.mr-2
        ='הודעה'
        =button_tag class: 'close ml-auto', 'data-dismiss': 'toast', type: 'button' do
          %span ×
      .toast-body
        %strong='זאת היא הודעת מערכת עם שחרור אחרי 5 שניות'

.row.mb-n2
  .col-auto.mb-2
    =link_to 'Load page with system toast', load_page_path, class: 'btn btn-light', data: {'main-spinner': true}
  .col-auto.mb-2
    =button_tag 'Show custom system toasts', type: :button, data: {action: 'show-toasts'}, class: 'btn btn-light'



:javascript
  $(()=>{
    $('[data-action="show-toasts"]').on('click', () => {
      if ($('#system-toasts .toast').length !== 0) return;
      $('#system-toasts').append($("#{preserve((render 'built_in_layouts/layouts/custom_toasts').gsub('"', '\\"'))}"));
      $('#system-toasts .toast').toast('show');
    });
  })

Wizard

Tab navigation
you can click on each step to navigate like regular tabs
step 1
step 2
step 3
step 4
step 5
.mb-4.text-center
  %h5.mb-0
    Tab navigation
  .small.text-muted
    you can click on each step to navigate like regular tabs
%ul.nav.nav-wizard.nav-wizard-steps-5#nav-wizard{data: {'nav-wizard-active-step': 1}}
  %li.nav-item
    =link_to '#step1', class: 'nav-link active', id: 'step1-tab', 'data-toggle': 'tab' do
      .nav-indicator
      .small.text-muted.text-nowrap.text-truncate afsdsfgd df gsdg dfs
  %li.nav-item
    =link_to '#step2', class: 'nav-link', id: 'step2-tab', 'data-toggle': 'tab' do
      .nav-indicator
      .small.text-muted.text-nowrap.text-truncate afsdfs
  %li.nav-item
    =link_to '#step3', class: 'nav-link', id: 'step3-tab', 'data-toggle': 'tab' do
      .nav-indicator
      .small.text-muted.text-nowrap.text-truncate afsdfs
  %li.nav-item
    =link_to '#step4', class: 'nav-link', id: 'step4-tab', 'data-toggle': 'tab' do
      .nav-indicator
      .small.text-muted.text-nowrap.text-truncate afsdfs
  %li.nav-item
    =link_to '#step5', class: 'nav-link', id: 'step5-tab', 'data-toggle': 'tab' do
      .nav-indicator
      .small.text-muted.text-nowrap.text-truncate afsdfs

.tab-content.text-center.border.p-3.mt-3.bg-light
  .tab-pane.show.active#step1 step 1
  .tab-pane#step2 step 2
  .tab-pane#step3 step 3
  .tab-pane#step4 step 4
  .tab-pane#step5 step 5
On this page