네이티브 SLDS 2.264.1 CSS 및 패키지 에셋, 자체 제작한 접근성 지원 HTML 및 JavaScript입니다. Salesforce API 또는 Lightning 런타임은 사용하지 않습니다. · 구현 레퍼런스
02
Salesforce Lightning 디자인 시스템 디자인 참조
공개된 @salesforce-ux/design-system 2.264.1 네이티브 CSS 및 ui-force 토큰 내보내기입니다. 고정된 클래식 블루프린트 참조이며, 최신 SLDS 2 디자인 언어나 Lightning Web Components 런타임과 호환된다는 의미는 아닙니다. 과거의 업스트림 저장소는 보관 처리되었습니다.
페이지 헤더에는 사례 번호, 제목, 계정, 담당자가 표시됩니다. 이 값들은 사용자가 필드를 변경하기 전에 객체를 식별해 줍니다. 상태 배지는 저장된 로컬 레코드의 요약이므로, 저장되지 않은 선택 값에 따라 바뀌지 않고 저장할 때 변경됩니다.
세부 정보와 활동을 구분하세요
넓은 영역에는 고객 맥락과 편집 양식이 함께 표시됩니다. 보조 영역에는 시간순으로 정렬된 기록이 표시됩니다. 이렇게 영역을 분리하면 다른 화면으로 이동하지 않고도 요청된 작업과 이미 기록된 변경 사항을 비교할 수 있습니다. 모바일 레이아웃에서는 의미상 같은 순서로 영역이 세로로 쌓입니다.
Salesforce Lightning 디자인 시스템의 시맨틱 색상과 상태
토큰 이름을 역할에 따라 읽기
ui-force 내보내기에는 기본 텍스트, 약한 강조의 텍스트, 선택된 테두리, 브랜드 버튼 배경이 구분되어 있습니다. 이 예시에서는 본문 텍스트를 어둡게, 메타데이터를 절제된 스타일로, 기본 동작 버튼을 파란색으로 유지합니다. 빨간색은 잘못된 입력란과 이를 바로잡는 방법을 안내하는 메시지에 사용하며, 저장되지 않은 모든 값에 사용하지 않습니다.
색상 외의 방법으로도 상태를 전달하기
요약과 새 활동 항목에는 우선순위와 상태를 텍스트로 표시합니다. 오류 상태에는 기본 slds-has-error 수정자, aria-invalid, 텍스트 영역에 연결된 메시지를 함께 사용합니다. 로컬 확인 메시지는 상태 영역에 텍스트로 표시합니다. 초록색 강조만으로는 사용자에게 무엇이 저장되었는지 알릴 수 없습니다.
Salesforce Lightning 디자인 시스템의 글자 크기 단계와 레코드 밀도
큰 제목에 의존하지 않고 시각적 계층 구조 만들기
공개된 번호형 글자 크기 단계는 0.625rem에서 시작해 2.625rem까지 이어집니다. 케이스 작업 영역의 모든 부분에 가장 큰 디스플레이 크기를 사용할 필요는 없습니다. 기본 페이지 헤더의 제목은 레코드를 식별하고, 카드 제목은 영역을 구분하며, 일반 본문 텍스트는 고객 요청과 메모를 전달합니다.
긴 레코드 제목을 온전히 표시하기
맞춤 레이아웃에서는 화면 폭이 좁아져도 페이지 제목이 잘리지 않고 다음 줄로 이어집니다. 메타데이터도 여러 줄로 표시할 수 있습니다. 계정 이름이 길다는 이유로 모든 텍스트 크기를 줄이지 마세요. 어디에서 잘라도 전체 텍스트를 안전하게 확인할 수 있는지 판단하기 전에 실제에 가까운 제목과 담당자 이름의 길이로 테스트하세요.
Salesforce Lightning 디자인 시스템의 간격과 블루프린트 구조
클래식 간격 내보내기와 변수 간격 내보내기를 혼용하지 않기
이 가이드에는 ui-force의 SPACING_*이 나열되어 있습니다. 별도의 var-spacing 내보내기에는 다른 압축 값이 포함되어 있으며, VAR_SPACING_MEDIUM은 SPACING_MEDIUM과 같은 기준값이 아닙니다. 이름이 비슷하다는 이유만으로 값을 혼용하면 양식의 간격이 고르지 않을 수 있습니다. 사용할 밀도 체계를 선택하고 해당 체계의 출처를 일관되게 유지하세요.
필드 래퍼를 일관되게 사용하기
Salesforce Lightning 디자인 시스템의 초안 및 저장된 레코드 동작
저장된 레코드와 컨트롤 값을 별도로 관리하기
스크립트는 마지막으로 저장된 우선순위와 상태를 레코드 객체에 보관합니다. 선택 항목을 편집해도 초안만 변경됩니다. 저장하면 해당 값을 객체에 복사하고, 요약을 업데이트한 뒤 활동 항목을 추가합니다. 따라서 여러 번 성공적으로 수정한 뒤에도 초안 버리기를 의미 있게 사용할 수 있습니다.
백엔드 성공을 임의로 가정하지 않기
이 예시에는 레코드 ID 조회, 권한 모델, API 또는 데이터베이스가 없습니다. 버튼과 확인 메시지에는 로컬 작업임이 명시되어 있습니다. 실제 Salesforce 통합에서 확정된 레코드 상태를 업데이트하려면 적절한 데이터 API와 서버 응답이 필요합니다. CSS 클래스만으로는 이를 보장할 수 없습니다.
Salesforce Lightning 디자인 시스템의 필드 유효성 검사와 활동
메모에 변경 내용을 설명하기
작성된 규칙은 공백을 제거한 뒤 10자 이상이어야 하며 텍스트 영역은 300자로 제한됩니다. 메모가 비어 있거나 너무 짧으면 레코드를 변경하지 않고 필드 오류를 표시한 뒤 메모 입력란으로 포커스를 이동합니다. 입력을 수정하면 이전 오류가 지워지고, 다음에 저장할 때 현재 값을 다시 검증합니다.
메모 없이 제출해 저장된 요약 값이 바뀌지 않는지 확인하세요.
적절한 메모를 입력하고 저장한 뒤 가장 최근 활동 항목을 확인하세요.
필드를 다시 변경한 뒤 초안을 버리고 마지막으로 저장된 값으로 복원되는지 확인하세요.
읽기 쉬운 변경 항목 추가하기
로컬 업데이트가 성공하면 저장된 상태와 우선순위로 활동 제목을 만들고, 그 아래에 메모를 입력한 그대로 텍스트로 표시합니다. 새 항목은 맨 앞에 추가되어 가장 최근 변경 사항이 먼저 보입니다. 메모는 HTML로 해석되지 않으며, 처음부터 표시된 정적 활동은 사용자가 로컬에서 추가한 항목 아래에 유지됩니다.
Salesforce Lightning 디자인 시스템의 접근성 높은 양식과 복구
실제 레이블과 명시적인 설명 사용하기
선택 항목과 텍스트 영역에는 for와 id로 연결된 표시 레이블이 있습니다. 메모 입력란은 도움말 및 오류 텍스트를 참조하며, 필수 입력 표시에는 읽을 수 있는 title이 지정되어 있습니다. 기본 동작과 초안 버리기 동작에는 각각 적절한 submit 및 button 유형의 버튼을 사용해 초안을 버릴 때 실수로 양식이 제출되지 않도록 합니다.
초안을 버린 뒤 예측 가능한 위치로 돌아가기
버리기를 선택하면 저장된 우선순위와 상태를 복원하고, 메모와 필드 오류를 지운 뒤 우선순위 컨트롤에 포커스를 둡니다. 활동 기록을 삭제하거나 레코드를 처음 상태로 되돌리지는 않습니다. 한 번 저장한 후 다른 변경을 시도했다가 두 번째 초안을 취소할 때 이 구분이 중요합니다.
Salesforce Lightning 디자인 시스템의 CSS 통합 및 버전 범위
게시된 스타일 패키지 설치하기
전체 소스는 버전이 고정된 CSS 배포 패키지와 소규모 애플리케이션 스타일시트를 가져옵니다. Vite가 패키지의 글꼴 및 이미지 URL을 처리합니다. 그런 다음 HTML과 JavaScript가 레코드 동작을 제공합니다. 이는 CSS 블루프린트 구현이며 lightning-record-edit-form을 감싸는 래퍼가 아닙니다.
기본 패키지 CSS는 필드, 버튼, 카드의 모양을 제공합니다.
기존 HTML는 레코드 구조와 레이블을 제공합니다.
기존 JavaScript는 초안 상태, 유효성 검사, 로컬 활동을 관리합니다.
보관된 소스를 버전이 명시된 참고 자료로 다루기
Salesforce Lightning 디자인 시스템 구성 요소 예시
index.html — 전체 케이스 작업 공간
시맨틱 HTML으로 구현한 레코드 요약, 양식 및 초기 활동 내역입니다.
html
<!doctype html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Local case workspace</title>
<body>
<main class="slds-example">
<header class="slds-page-header">
<p class="slds-text-title_caps">Service workspace · fictional record</p>
<div class="record-title">
<div>
<h1 class="slds-page-header__title">
Case 004218 · Delivery address update
</h1>
<p class="slds-text-body_small">
Northstar Studio · Opened today · Owner: Maya Chen
</p>
</div>
<span id="status-badge" class="slds-badge">New</span>
</div>
</header>
<div class="record-grid">
<section class="slds-card">
<div class="slds-card__header">
<h2 class="slds-card__header-title">Case details</h2>
</div>
<div class="slds-card__body slds-card__body_inner">
<div class="summary">
<div>
<span class="slds-text-title">Contact</span>
<p>Alex Morgan</p>
</div>
<div>
<span class="slds-text-title">Channel</span>
<p>Email</p>
</div>
<div>
<span class="slds-text-title">Priority</span>
<p id="read-priority">Medium</p>
</div>
<div>
<span class="slds-text-title">Status</span>
<p id="read-status">New</p>
</div>
</div>
<div class="slds-box slds-theme_shade slds-m-top_medium">
<h3 class="slds-text-heading_small">Customer request</h3>
<p class="slds-m-top_small">
Please update the delivery location for order NS-1842 before it
leaves the warehouse. The contact is available to confirm the new
address.
</p>
</div>
<form id="case-form" class="slds-m-top_large" novalidate>
<h3 class="slds-text-heading_small slds-m-bottom_medium">
Update the local case
</h3>
<div class="field-grid">
<div class="slds-form-element">
<label class="slds-form-element__label" for="priority"
>Priority</label
>
<div class="slds-form-element__control">
<div class="slds-select_container">
<select class="slds-select" id="priority">
<option>Low</option>
<option selected>Medium</option>
<option>High</option>
</select>
</div>
</div>
</div>
<div class="slds-form-element">
<label class="slds-form-element__label" for="case-status"
>Status</label
>
<div class="slds-form-element__control">
<div class="slds-select_container">
<select class="slds-select" id="case-status">
<option>New</option>
<option>Working</option>
<option>Escalated</option>
<option>Closed</option>
</select>
</div>
</div>
</div>
</div>
<div id="note-field" class="slds-form-element slds-m-top_medium">
<label class="slds-form-element__label" for="case-note"
><abbr class="slds-required" title="required">*</abbr> Update
note</label
>
<div class="slds-form-element__control">
<textarea
class="slds-textarea"
id="case-note"
rows="3"
maxlength="300"
aria-describedby="note-help note-error"
></textarea>
</div>
<p id="note-help" class="slds-form-element__help">
Explain the change in 10–300 characters. Nothing is sent to
Salesforce.
</p>
<p id="note-error" class="slds-form-element__help" hidden>
Enter an update note of at least 10 characters.
</p>
</div>
<div class="form-actions">
<button
type="button"
id="cancel"
class="slds-button slds-button_neutral"
>
Discard draft</button
><button type="submit" class="slds-button slds-button_brand">
Save local update
</button>
</div>
<p id="save-result" class="slds-m-top_small" role="status"></p>
</form>
</div>
</section>
<aside class="slds-card">
<div class="slds-card__header">
<h2 class="slds-card__header-title">Case activity</h2>
</div>
<div class="slds-card__body slds-card__body_inner">
<p class="slds-text-body_small slds-m-bottom_medium">
Newest updates first
</p>
<ol id="activity" class="activity">
<li>
<span class="activity-dot"></span>
<div>
<h3 class="slds-text-heading_small">Case opened</h3>
<p>Customer requested a delivery address change.</p>
<small>Initial example activity</small>
</div>
</li>
</ol>
</div>
</aside>
</div>
<footer>
Native SLDS 2.264.1 CSS with original HTML and JavaScript. Local
demonstration; no Salesforce record or message is created.
</footer>
</main>
<script type="module" src="/src/main.js"></script>
</body></html>
고정된 네이티브 CSS 예제이며, Salesforce 조직에 배포하는 용도가 아닙니다. 번들 자산을 재배포할 때 패키지 및 자산 고지 사항을 그대로 유지하세요.
sh
npm create vite@latest slds-case -- --template vanilla
cd slds-case
npm install
npm install @salesforce-ux/[email protected]
# Replace index.html; add src/main.js and src/slds.css from the complete examples.
npm run dev
프로젝트를 위한 프롬프트
에이전트 프롬프트
고정된 SLDS CSS 블루프린트를 사용해 집중도 높은 케이스 작업 공간을 만드세요. 레코드 식별 정보, 고객 정보, 저장된 상태 및 편집 초안을 서로 구분하세요. 정확한 필드 구조, 실제 토큰 참조 및 전체 소스를 여기서 사용하세요. 요약을 변경하기 전에 메모의 유효성을 검사하고, 초안을 취소한 뒤에도 로컬 활동 내역을 유지하세요. Salesforce 백엔드에 연결된 것처럼 표현하지 마세요.
05
Salesforce Lightning 디자인 시스템 출처 및 범위
고정된 SLDS CSS 패키지에 대한 OpenDesign 가이드입니다. 미리보기는 원본 HTML 및 JavaScript, 가상의 케이스 데이터와 로컬 상태를 사용해 네이티브 CSS로 구현했습니다. Lightning Web Components를 불러오거나 Salesforce에 연결하지 않습니다. 업스트림 저장소는 보관 처리되었습니다. 프로덕션 작업에는 최신 Salesforce 플랫폼 지침을 확인하세요.