Salesforce Lightning Design System

Всім привіт.

У цій статті поговоримо про Salesforce Lightning Design System, розглянемо, що це таке, як та навіщо нам використовувати.

Отже, Salesforce Lightning Design System (SLDS) — це потужний набір інструментів, компонентів і інструкцій, які дозволяють дизайнерам і розробникам створювати виняткову взаємодію з користувачами на платформах Salesforce. SLDS пропонує уніфіковану мову дизайну, узгоджену для всіх продуктів Salesforce, включаючи Sales Cloud, Service Cloud, Marketing Cloud і Community Cloud.

Основна мета SLDS — дозволити розробникам і дизайнерам створювати інтуїтивно зрозумілі, зручні інтерфейси, оптимізовані для зручності використання та доступності. Компоненти SLDS створено з використанням останніх веб-стандартів, включаючи HTML, CSS і JavaScript. Це дозволяє розробникам легко інтегрувати SLDS у свої проєкти, незалежно від технологічного стека, який вони використовують.

Ці всі слова звичайно дуже цікаві, але поки ми не спробуємо зробити щось власноруч – буде важко зрозуміти. Отже, я поставила перед собою завдання, а саме спробую за обмежену кількість часу створити форму для опитування Salesforce девелоперів. Для цього я побудую форму спершу без використання SLDS, а потім знову за той самий час з SLDS. Таким чином ми зможемо побачити які результати ми отримаємо та як зміниться якість результату за однакову кількість бізнес годин.

Почнемо з прикладу, який було розроблено за допомогою HTML та CSS. Стилі, які були додані надали ним зрозумілий вигляд для загального розуміння. Оскільки у нас є ліміт по часу, CSS було задано мінімальний.
1
Нижче бачимо приклад створеної форми з таким самим наповненням з використанням SLDS. Очевидно, що ми отримали значно приємніший результат за той самий час.

1
Розберімо те, що ми бачили вище, та що було використано для видозмінення нашої форми. Тож давайте розглянемо як змінилися різноманітні поля для введення даних з використанням SLDS.

Text input:

<label class="name-label" for="name">*Name</label>
<input type="text" name="name" placeholder="Enter Your Name" required>

1

Text input (SLDS):

<abbr class="slds-required" title="required">* </abbr>Name</label>
	<div class="slds-form-element__control">
		<input type="text" placeholder="Enter Your Name" required="" class="slds-input" />
	</div>

1|461x85.06666666666668

Picklist:

<label for="drop-down">How do you rate our survey?</label>
<select name="drop-down" id="drop-down-item">
	<option value="Excellent">Excellent
	</option>
	<option value="Good">Good
	</option>
	<option value="Interesting">Interesting
	</option>
	<option value="Poor">Poor
	</option>
</select>

1

Picklist (SLDS):

<div class="slds-form-element__control">
	<div class="slds-select_container">
		<select class="slds-select" id="select-picklist">
			<option>Select…</option>
			<option>Excellent</option>
            <option>Good</option>
            <option>Interesting</option>
            <option>Poor</option>
		</select>
	</div>
</div>

1

Примітка :wink:

Grid — це набір горизонтальних і вертикальних ліній, що утворюють патерн, за яким ми можемо вибудовувати елементи дизайну. Вони допомагають нам створювати макети, у яких наші елементи не стрибатимуть і не змінюватимуть ширину під час переходу від сторінки до сторінки, забезпечуючи більшу послідовність на наших вебсайтах. Ця система широко використовується при створенні різноманітних сторінок чи компонентів. Звичайно що і у SLDS реалізовано Grid.

Система сітки SLDS дозволила нам розмістити елементи, за допомогою Grid, нижче ми бачимо приклад, а саме, тут ми використовуємо класи: slds-grid (для div, який містить радіобатони) та slds-col (для кожного внутрішнього div з варіантом). На прикладі у нас є два елементи slds-col, які утворюють наступний вигляд:

Radio button:

<fieldset>
	<legend>Do you like Salesforce?</legend>
	<input type="radio" name="radio" id="ofCourse" value="ofCourse">
	<label for="ofCourse">Yes, of course</label>
	<br>
	<input type="radio" name="radio" id="sure" value="sure">
	<label for="sure">Yes, for sure</label>
</fieldset>

1

Radio button (SLDS & Grid):

<fieldset class="slds-form-element slds-m-top_xx-small">
	<label class="slds-form-element__label slds-text-heading_small" for="select">Do you like Salesforce?</label>
	<div class="slds-form-element__control slds-grid">
		<span class="slds-radio slds-col">
			<input type="radio" id="radio-1" value="radio-1"/>
			<label class="slds-radio__label" for="radio-1">
				<span class="slds-radio_faux slds-m-right_x-small"></span>
				<span class="slds-form-element__label textStyle">Yes, of course</span>
			</label>
		</span>
		<span class="slds-radio slds-col">
			<input type="radio" id="radio-2" value="radio-2"/>
			<label class="slds-radio__label" for="radio-2">
				<span class="slds-radio_faux slds-m-right_x-small"></span>
				<span class="slds-form-element__label textStyle">Yes, for sure</span>
			</label>
		</span>
	</div>
</fieldset>

1

Group of checkboxes:

<fieldset>
	<legend>What do you like about Salesforce?</legend>
	<input type="checkbox" name="salesforce" value="Flexibility and customizablity">
	<label for="flexibilitycustomizablity">Flexibility and customizablity</label>
	<br>
	<input type="checkbox" name="salesforce" value="Access and maintenance">
	<label for="accessmaintenance">Access and maintenance</label>
	<br>
	<input type="checkbox" name="salesforce" value="Learning and development">
	<label for="learningdevelopment">Learning and development</label>
</fieldset>

1

Group of checkboxes (SLDS):

<fieldset class="slds-form-element slds-is-required">
	<legend>
		<abbr class="slds-required slds-form-element__label slds-text-heading_small" title="required">*</abbr> What do you like about Salesforce?
	</legend>
	<div class="slds-form-element__control">
		<div class="slds-checkbox">
			<input type="checkbox" name="options" id="checkbox-unique-id-1" value="checkbox-unique-id-1" checked="" />
			<label class="slds-checkbox__label" for="checkbox-unique-id-1">
				<span class="slds-checkbox_faux"></span>
				<span class="textStyle">Flexibility and customizablity</span>
			</label>
		</div>
		<div class="slds-checkbox">
			<input type="checkbox" name="options" id="checkbox-unique-id-2" value="checkbox-unique-id-2" />
			<label class="slds-checkbox__label" for="checkbox-unique-id-2">
				<span class="slds-checkbox_faux"></span>
				<span class="textStyle">Access and maintenance</span>
			</label>
		</div>
		<div class="slds-checkbox">
			<input type="checkbox" name="options" id="checkbox-unique-id-3" value="checkbox-unique-id-3" />
			<label class="slds-checkbox__label" for="checkbox-unique-id-3">
				<span class="slds-checkbox_faux"></span>
				<span class="textStyle">Learning and development</span>
			</label>
		</div>
	</div>
</fieldset>

1

Text area:

<textarea rows="5" columns="500"></textarea>

1

Text area (SLDS):

<label class="slds-form-element__label slds-m-top_xx-small slds-text-heading_small" for="comments">
Help us improve our Survey Form about Salesforce. Enter your suggestions.
</label>
<div class="slds-form-element__control">
	<textarea id="comments" placeholder="Type here…" class="slds-textarea"></textarea>
</div>

1

Button:

<input type="submit" id="submit" value="Submit">

1

Button (SLDS):

<button class="slds-button slds-button_brand slds-m-top_x-small">Submit</button>

1

Примітка :wink:

Позначення полів як required дозволяє нам при натисканні на кнопку отримати валідацію з наступним зовнішнім виглядом, який забезпечує SLDS. Ось такий приємний бонус)
1

Підсумовуючи, Salesforce Lightning Design System — це потужний набір інструментів і інструкцій, які можуть допомогти організаціям створити виняткову взаємодію з користувачами на платформах Salesforce. Незалежно від того, чи є ви розробником, дизайнером або ентузіастом Salesforce, SLDS пропонує широкий спектр переваг, включаючи економію часу, послідовність і простоту використання. Завдяки своїй спільноті з відкритим вихідним кодом і прагненню бути в курсі останніх тенденцій і технологій у дизайні, SLDS є цінним ресурсом для тих, хто прагне створити виняткову взаємодію з користувачем. Також хочу підкреслити, що використання цього інструменту може значно підвищити ефективність роботи, оскільки, як показує вище описаний приклад за однаковий час ми отримали значно кращий результат з використанням SLDS. На останок зазначу, що офіційна документація є вичерпною та містить чи мало практичних прикладів із застосування данного інструменту. Впевнена, що вона допоможе розібратися у використанні найрізноманітніших стильових інструментів. Посилання на документацію та на деякі її розділи уже чекають на вас нижче.

5 Вподобань