Modal Base: Content Loading

See "img upload" in sidebar snet/molecules for variants, or go to info panel and look for it in "references" (@snet-img-upload)

Refer to modal frame found in view tab for complete structure without content.

A modal's default size is 640px

Modifier classes for modals

  • modal-sm: 480px
  • modal-md: 720px (mainly used for modals containing images)
  • modal-lg: 896px
  • modal-xl: 1120px

Content loading

A modal with a content loading component behaves as follows:

  • It has a second body element with the -isLoading class that is hidden by default, and shown only when ...
  • ... the -contentLoading modifier is applied to the modal element ...
  • ... which in turn hides the regular modal body element which into which the content is injected
<div class="sds-modal modal fade -contentLoading" id="" aria-hidden="true" tabindex="-1">
    <div class="sds-modal__dialog modal-dialog modal-lg modal-dialog-centered">
        <div class="sds-modal__content modal-content">

            <div class="sds-modal__header modal-header">

                <button type="button" class="sds-btn -iconBtn -btnSecondary -ghost sds-modal__close" data-dismiss="modal" aria-label="Close">

                    <span class="sds-icon sds-icon-close"></span>

                </button>

            </div>

            <div class="sds-modal__body -isLoading modal-body">

                <div class="sds-stackMd">
                    <span class="sds-skeletonUnit"></span>
                    <div class="sds-stackMd">
                        <span class="sds-skeletonUnit -skeletonUnitTextBody"></span>
                        <span class="sds-skeletonUnit -skeletonUnitTextBody"></span>
                    </div>
                </div>

            </div>

            <div class="sds-modal__body modal-body">

                regular modal body content

            </div>

            <div class="sds-modal__footer modal-footer">

                <div class="sds-btnGroup">
                    <button type="button" class="sds-btn -btnSecondary -btnInverse" disabled>

                        <span class="sds-btn__text">Annuler</span>

                    </button>
                    <button type="button" class="sds-btn -btnPrimary -isLoading" disabled>

                        <span class="sds-btn__text">Sauvegarder</span>

                    </button>
                </div>

            </div>

        </div>
    </div>
</div>
{% extends "@snet-modal-base-frame" %}
{% block bodyContentLoading %}
	<div class="{{ namespace }}stackMd">
		{% render "@skeleton-unit--default" %}
		<div class="{{ namespace }}stackMd">
			{% render "@skeleton-unit--text-body" %}
			{% render "@skeleton-unit--text-body" %}
		</div>
	</div>
{% endblock %}

{% block body %}
	regular modal body content
{% endblock %}

{% block footer %}
	<div class="{{ namespace }}btnGroup">
		{% render "@btn-secondary-inverse",{
			text: "Annuler",
			disabled: true,
			attrs: imgTextBtnModalAttrs
		},true %}
		{% render "@btn-primary",{
			text: "Sauvegarder",
			disabled: true,
			classes: ["-isLoading"],
			attrs: imgTextBtnModalAttrs
		},true %}
	</div>
{% endblock %}