Design System

Typography

Heading 1

<h1>Heading 1</h1>

<span class="as-h1">Heading 1</span>

Heading 2

<h2>Heading 2</h2>

<span class="as-h2">Heading 2</span>

Heading 3

<h3>Heading 3</h3>

<span class="as-h3">Heading 3</span>

Heading 4

<h4>Heading 4</h4>

<span class="as-h4">Heading 4</span>
Heading 5
<h5>Heading 5</h5>

<span class="as-h5">Heading 5</span>
Heading 6
<h6>Heading 6</h6>

<span class="as-h6">Heading 6</span>

This is a paragraph of text to demonstrate typography styles. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

<p>
	This is a paragraph of text to demonstrate typography styles.
	Lorem ipsum dolor sit amet, consectetur
	adipiscing elit. Sed do eiusmod tempor
	incididunt ut labore et dolore magna aliqua.
</p>

Avatar

Property Name Property Description :firstName First name of the user :lastName Last name of the user :imageUrl Profile image URL of the user :showNotification Boolean, if true the notification badge will be shown :notificationPosition The position of the notification badge: top-right, top-left, bottom-right, bottom-left :togglePopoverTarget The ID of the popover to be toggled on click
<x-osc-ui::avatar :firstName="'John'"
                  :lastName="'Doe'"
/>
<x-osc-ui::avatar :firstName="'John'"
                  :lastName="'Doe'"
                  :imageUrl="'{{ url('assets/media/img/profile.jpg') }}'"
/>
<x-osc-ui::avatar :firstName="'John'"
                  :lastName="'Doe'"
                  :imageUrl="'{{ url('assets/media/img/profile.jpg') }}'"
                  :togglePopoverTarget="'account-menu-popover'"
/>

<x-osc-ui::popover :popoverId="'account-menu-popover'"
                   :items="$items" />

Button

Property Name Property Description :name Name of the button :buttonType Type of the button between: primary, secondary, tertiary, icon-only :submit Boolean, if true the button will be of type submit :prefix Icon prefix of the button :suffix Icon suffix of the button :ajax Boolean, if true the button will trigger an ajax call :dataAttributes Array, the array of data-* attributes of the button :additionalClasses CSS additional classes of the link
<x-osc-ui::button :name="'send'"
                  :submit="true"
                  :buttonType="'primary'">
	Send
</x-osc-ui::button>
<x-osc-ui::button :name="'send'"
                  :buttonType="'secondary'"
                  :prefix="'inbox-up'">
	Send
</x-osc-ui::button>
<x-osc-ui::button :name="'send'"
                  :buttonType="'tertiary'"
                  :suffix="'mail'"
                  :dataAttributes="['tracking-id' => '12345']">
	Mail Button
</x-osc-ui::button>
<x-osc-ui::button :name="'send'"
                  :buttonType="'icon-only'">
	<iconify-icon icon="iconify:star"></iconify-icon>
</x-osc-ui::button>

Card

Property Name Property Description :title Title of the card :copy Copy of the card, can contain HTML :ctaButton Boolean, if true a button will be shown as call to action :ctaUrl The URL of the call to action link :ctaLabel The label of the call to action button or link :ctaTarget The target attribute of the call to action link :imageUrl The URL of the image to be shown on top of the card :tags Array, the array of tags to be shown on top of the card :date The date to be shown on top of the card :dataAttributes Array, the array of data-* attributes of the card button :additionalClasses CSS additional classes of the card
Title of the Card
Tag Label

Title of the Card

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<?php

$tags = [];

$tags[] = [
	'name'  => 'tag-name',
	'label' => 'Tag Label',
];

?>
<x-osc-ui::card :copy="'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'"
                :tags="$tags"
                :imageUrl="url('assets/media/img/placeholder.jpg')"
                :ctaButton="false"
                :ctaUrl="'https://www.sacrocuore.it'"
                :ctaLabel="'Open Link'"
                :ctaTarget="'_blank'" />
Title of the Card
Tag Label Tag Label 2
March 10, 2024

Title of the Card

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<?php

$tags = [];

$tags[] = [
	'name'  => 'tag-name',
	'label' => 'Tag Label',
];

$tags[] = [
	'name'  => 'tag-name-2',
	'label' => 'Tag Label 2',
];

$dataAttributes = [
	'micromodal-trigger' => 'modal-video-card',
];

?>
<x-osc-ui::card :title="'Title of the Card'"
                :copy="'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'"
                :tags="$tags"
                :imageUrl="url('assets/media/img/placeholder.jpg')"
                :ctaButton="true"
                :ctaLabel="'Watch Video'"
                :dataAttributes="$dataAttributes" />

Chip

Property Name Property Description :chip Chip value to be displayed :status The status of the chip, can be "active", "inactive" or "readonly" :additionalClasses CSS additional classes of the chip
Chip inactive
<x-osc-ui::chip :chip="'Chip inactive'" :status="'inactive'" />
Chip active
<x-osc-ui::chip :chip="'Chip active'" :status="'active'" />
Chip readonly
<x-osc-ui::chip :chip="'Chip readonly'" :status="'readonly'" />

Dropzone

osc::dropzone.line
form.dropzone_line_or
osc::dropzone.upload_file
osc::dropzone.release_file
The file size must not exceed 32 MB, and the accepted formats are jpg, png, pdf, and mp4.
<x-osc-ui::field :name="'media'"
                 :type="'dropzone'"
                 :required="true"
                 :label="'Upload media'"
                 :dropzoneId="'dropzone-test-form'"
                 :uploadUrl="'/upload/media'"
                 :acceptedFiles="'.jpg,.jpeg,.png,.pdf,.mp4'"
                 :maxFileSize="32"
                 :hint="'The file size must not exceed 32 MB, ' +
                  'and the accepted formats are jpg, png, pdf, and mp4.'">
</x-osc-ui::field>

Field

Property Name Property Description :name Name of the field (input, select, etc.) :type Type of the field: text, textarea, select, checkbox, radio, dropzone, input-chips, etc. :label Label of the field :placeholder Placeholder of the field :required Boolean, if true the field is required :withBorderRadius Boolean, if true the field will have border radius :hint The hint text of the field :prefix Icon prefix of the button :suffix Icon suffix of the button :minLength The minimum length of the input value (only for text and textarea types) :maxLength The maximum length of the input value (only for text and textarea types) :options Array, the array of options for select, radio, and input-chips types. The array should be in the format: [ [ "name" => "option1", "label" => "Option 1" ], [ "name" => "option2", "label" => "Option 2" ] ] :multiple Boolean, if true the field will be multiple (only for select and dropzone types) :dropzoneId String, the unique ID of the dropzone (only for dropzone type) :uploadUrl String, the url for uploading files (only for dropzone type) :acceptedFiles String, the accepted file types for dropzone (only for dropzone type), e.g. ".jpg,.png,.pdf" or for all types use "*" :maxFileSize Number, the maximum file size in MB for dropzone (only for dropzone type) :additionalClasses CSS additional classes of the link

Input Chips

While typing check that the tag is not already present
<x-osc-ui::field :name="'tags'"
                 :type="'input-chips'"
                 :label="'Tags'"
                 :placeholder="'Upload tags'"
                 :prefix="'tag-linear'"
                 :hint="'While typing check that the tag is not already present'"
                 :options="$tags">
</x-osc-ui::field>

Input Text

<x-osc-ui::field :name="'email'"
                 :prefix="'email-1'"
                 :type="'email'"
                 :label="'Email'"
                 :placeholder="'Insert email here'"
                 :required="true">
</x-osc-ui::field>
<x-osc-ui::field :name="'password'"
                 :type="'password'"
                 :label="'Password'"
                 :minLength="8"
                 :maxLength="24"
                 :required="true">
</x-osc-ui::field>

Select (single)

<?php

$options = [
	[ 'value' => 'filter_1', 'label' => 'Filter 1' ],
	[ 'value' => 'filter_2', 'label' => 'Filter 2' ],
	[ 'value' => 'filter_3', 'label' => 'Filter 3' ],
];

?>
<x-osc-ui::field :name="'filter'"
                 :type="'select'"
                 :label="'Select filter (single)'"
                 :placeholder="'Select filter'"
                 :value="'filter_2'"
                 :options="$options">
</x-osc-ui::field>

Select (multiple)

<?php

$options = [
	[ 'value' => 'filter_1', 'label' => 'Filter 1' ],
	[ 'value' => 'filter_2', 'label' => 'Filter 2' ],
	[ 'value' => 'filter_3', 'label' => 'Filter 3' ],
];

?>
<x-osc-ui::field :name="'filter'"
                 :type="'select'"
                 :label="'Select filter (multiple)'"
                 :placeholder="'Select filter'"
                 :multiple="true"
                 :value="['filter_1', 'filter_2']"
                 :options="$options">
</x-osc-ui::field>

Tag

Property Name Property Description :tag Tag value to be displayed :status The status of the tag, can be "active", "inactive" or "readonly" :additionalClasses CSS additional classes of the tag
Tag inactive
<x-osc-ui::tag :chip="'Tag inactive'" :status="'inactive'" />
Tag active
<x-osc-ui::tag :chip="'Tag active'" :status="'active'" />
Tag readonly
<x-osc-ui::tag :chip="'Tag readonly'" :status="'readonly'" />

Textarea

<x-osc-ui::field :name="'description'"
                 :type="'textarea'"
                 :required="true"
                 :label="'Description'"
                 :placeholder="'Insert description'">
</x-osc-ui::field>