엔터프라이즈 컴포넌트 시스템 · 새 리소스

Vuestic UI 디자인 시스템.

출처를 확인한 밝은색 및 어두운색 프리셋, 접근성 있는 평점 레이블, 텍스트 영역 유효성 검사, 계산된 평균, 작성한 평가 내용을 보존하는 저장 상태를 갖춘 네이티브 Vuestic 평가 양식입니다.

OpenDesign 가이드9개 챕터참조 항목 33개독자적 적용 가이드
01

Vuestic UI 디자인 시스템 인터페이스 미리보기

명확성, 계층 구조, 피드백을 평가하고 의미 있는 의견을 추가한 뒤 로컬 평가를 저장하세요.

디자인 비평 워크시트전체 예시 열기
Vue 3용 Vuestic UI 1.10.3, @quasar/extras 2.1.0을 통해 로컬에 포함된 Material Icons. · 구현 레퍼런스
02

Vuestic UI 디자인 시스템 디자인 참고 자료

Vuestic UI 1.10.3. 프리셋 값은 설치된 색상 서비스에서 읽고, 컴포넌트 변수는 해당 서비스의 CSS에서 가져옵니다. 워크시트는 기본 밝은 프리셋을 유지하지만 --va-font-family를 system-ui로 의도적으로 재정의합니다. 장식용 도형과 주변의 크기 체계는 독창적으로 구성했습니다.

기본 밝은 색상 프리셋

출처
이름 / 규칙값 / 구성용도
primary#154EC1 평점 및 기본 동작.
secondary#767C88 보조 역할입니다.
success#3D9209 저장된 결과.
info#158DE3 정보 역할입니다.
danger#E42222 오류 역할.
warning#FFD43A 경고 역할입니다.
backgroundPrimary#f6f6f6 기본 메인 표면.
backgroundSecondary#FFFFFF 기본 돌출 표면.
backgroundElement#ECF0F1 요소 표면.
backgroundBorder#DEE5F2 경계 역할.
textPrimary#262824 기본 텍스트.
textInverted#FFFFFF 반전 텍스트.
focus#49A8FF 포커스 역할.

기본 어두운 프리셋 비교

출처
이름 / 규칙값 / 구성용도
primary#3472F0 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
success#66BE33 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
danger#F34030 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
backgroundPrimary#050A10 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
backgroundSecondary#1F262F 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
backgroundElement#131A22 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
backgroundBorder#3D4C58 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
textPrimary#F1F1F1 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.
textInverted#0B121A 공식 어두운 프리셋 참고 자료이며, 로컬 예제는 밝은 테마를 유지합니다.

네이티브 CSS 및 명시적으로 지정한 애플리케이션 크기 체계

출처
이름 / 규칙값 / 구성용도
--va-font-family"Source Sans Pro", sans-serif라이브러리 기본값이며, 예제에서는 system-ui로 명시적으로 재정의했습니다.
--va-button-border-radius0.25rem컴파일된 네이티브 버튼 둥근 모서리 값.
--va-form-element-border-radius0.25rem컴파일된 공통 폼 둥근 모서리 값.
--va-button-content-py0.5rem버튼의 세로 콘텐츠 여백.
--va-button-content-px0.75rem버튼의 가로 콘텐츠 여백.
--va-rating-number-item-margin0.1em네이티브 숫자 입력 모드의 간격 참고 값.
--va-rating-number-item-font-weight700네이티브 숫자 입력 모드의 강조 참고 값.
Application title34px / 1.15; 29px narrow독창적인 제목 계층 구조.
Application spacing6 / 7 / 8 / 10 / 12 / 14 / 16 / 18 / 22 / 24 / 28 / 32px실제 독창적 스타일시트 값이며 Vuestic 토큰 단계 체계가 아닙니다.
Application panel radius14px독창적으로 구성한 주변 기하 형태.
LayoutFlexible form + 280px summary; stack below 760px콘텐츠 높이에 맞춘 임베디드 레이아웃.
03

Vuestic UI 디자인 시스템 전체 가이드

실제 인터페이스를 위해 이 시스템을 선택하고 적용하고 검토하는 실용 가이드.

DESIGN-vuestic-ui.md

완전한 안내와 구현 시작점, 소스 링크.

가이드 다운로드

Vuestic UI 디자인 시스템: 이름이 지정된 색상 프리셋을 제공하는 구성 가능한 Vue 라이브러리

이름이 지정된 색상 프리셋을 제공하는 구성 가능한 Vue 라이브러리

Vuestic은 createVuestic을 통해 공통 서비스를 등록합니다. 이 예제는 vuestic-ui에서 가져온 네이티브 컴포넌트와 기본 밝은 색상 프리셋을 사용합니다. 평점, 버튼, 진행률 표시 및 성공 알림은 동일한 서비스를 통해 의미 있는 색상 이름을 해석합니다.

이 OpenDesign 가이드에서

이 워크시트는 해당 컴포넌트를 실제로 적용한 예제로, 세 가지 검토 질문을 구분하고 근거가 되는 의견을 수집하며 평균을 계산한 뒤 저장된 로컬 결과를 잠급니다. 색상으로 구분된 평가 기준 표시와 2열 구성은 독창적인 애플리케이션 디자인이며, Vuestic 컴포넌트를 추가로 사용한 것은 아닙니다.

지원 사양 읽기

Vuestic UI 디자인 시스템: 서비스 프리셋과 CSS 기하 변수 구분하기

서비스 프리셋과 CSS 기하 변수 구분하기

검증된 라이트 프리셋은 primary #154EC1, success #3D9209, textPrimary #262824를 정의합니다. 다크 프리셋은 라이트 페이지의 색상을 단순히 반전하는 대신 primary, text, surface에 서로 다른 값을 사용합니다. 참조 표에는 두 프리셋이 모두 기록되어 있지만, 미리보기는 의도적으로 라이트 모드로 유지됩니다.

컴포넌트의 형태는 --va-button-border-radius와 --va-form-element-border-radius 같은 CSS 변수를 통해 설정하며, 설치된 스타일시트에서 두 변수의 값은 모두 0.25rem입니다. 색상 프리셋과 CSS 변수 재정의는 서로 다른 문제를 해결합니다. 의미 역할에는 서비스를 사용하고, 지원되는 컴포넌트의 형태를 조정할 때는 문서화된 변수를 사용하세요.

지원 사양 읽기

Vuestic UI 디자인 시스템 필요한 아이콘을 불러오고 글꼴 재정의를 명시하세요

필요한 아이콘을 불러오고 글꼴 재정의를 명시하세요

Vuestic의 기본 --va-font-family는 Source Sans Pro를 지정합니다. 예제에서는 로드하지 않은 글꼴에 암묵적으로 의존하지 않고 해당 변수를 system-ui로 재정의합니다. 따라서 기본 컴포넌트의 레이블과 애플리케이션 문구 모두 사용 가능한 글꼴 스택을 명시적으로 공유합니다.

기본 평점 아이콘은 star, star_outline 같은 Material Icons 이름을 사용합니다. 아이콘의 로컬 글꼴 스타일시트는 @quasar/extras에서 가져오며 글꼴 파일과 함께 번들링됩니다. 해당 에셋이 없으면 별 모양 대신 아이콘 이름이 텍스트로 표시될 수 있습니다. 아이콘 글꼴은 애플리케이션의 텍스트 글꼴 재정의와 별도로 유지됩니다.

지원 사양 읽기

Vuestic UI 디자인 시스템 낮은 점수가 아니라 미응답 상태로 0을 사용하세요

낮은 점수를 주기보다 미응답 상태로 0을 사용하세요

각 VaRating은 하나의 평가 기준에 숫자 값을 연결합니다. 최댓값은 5이고 초기화가 가능하므로 현재 점수를 다시 선택하면 해당 기준을 0으로 되돌릴 수 있습니다. UI에서는 0을 완료된 0점 평가로 표시하지 않고 ‘평가 안 됨’으로 표시합니다.

평균은 양수 평점의 개수로 나눠 계산합니다. 따라서 작성 중인 평가표에서 미응답 기준이 평균에 불이익을 주지 않습니다. 다만 저장하려면 세 기준 모두에 답해야 하므로 최종 평균은 항상 전체 평가를 나타냅니다. 평점을 변경하면 완료 상태 칩, 진행률 표시줄, 요약이 즉시 업데이트됩니다.

  1. 빈 평가표를 저장하고 미응답 평점과 메모에 대한 피드백을 확인하세요.
  2. 명확성에는 4, 계층 구조에는 3, 피드백에는 2를 입력하면 평균은 3.0이 됩니다.
  3. 구체적인 의견을 작성해 저장한 다음, ‘다시 시작’을 눌러 평가표 전체를 초기화하세요.

지원 사양 읽기

Vuestic UI 디자인 시스템 의미 있는 의견을 작성하고 충분한 입력 공간을 제공하세요

유용한 관찰을 위해서는 의미 있는 텍스트와 충분한 공간이 필요합니다

VaTextarea에는 표시되는 레이블과 400자 제한, 글자 수 카운터가 있습니다. 저장을 시도한 뒤 애플리케이션은 앞뒤 공백을 제거한 값이 20자 이상인지 확인합니다. 따라서 공백만 입력하면 글자 수가 형식상 충분하더라도 요구사항을 충족할 수 없습니다.

textarea는 자동 크기 조절을 사용하며 최소 4행, 최대 12행으로 설정되어 있습니다. 이는 단순한 예시용 prop이 아니라 기능 설정입니다. 자동 크기 조절이 없으면 최소 행 설정만으로는 의도한 대로 입력 영역이 확장되지 않습니다. 수정된 버전은 좁은 화면에서도 의견을 확인할 수 있게 하며, 예외적으로 긴 메모는 일반 스크롤로 볼 수 있게 합니다.

지원 사양 읽기

Vuestic UI 디자인 시스템 평점 평균이 아니라 완료 상태를 기준으로 진행률을 계산하세요

평균 점수가 아니라 완료 여부를 기준으로 진행률을 계산하세요

진행률 표시줄은 답변한 기준의 수를 측정하며, 평점을 입력한 기준 수를 3으로 나눈 뒤 100을 곱해 나타냅니다. 옆의 큰 숫자는 평균 점수를 나타냅니다. 두 값은 분모가 다르므로 혼동해서는 안 됩니다. 점수가 모두 낮더라도 세 기준에 모두 답했다면 완료율은 100%입니다.

완료 안내 문구에는 분자와 분모가 직접 표시됩니다. 평균에는 ‘평가한 기준의 평균’이라는 레이블이 붙고, 요약에는 각 기준의 점수가 다시 표시됩니다. 이러한 레이블 덕분에 독자는 설명 없는 진행률 표시줄을 전반적인 품질 평가로 오해하지 않고 계산 방식을 이해할 수 있습니다.

지원 사양 읽기

Vuestic UI 디자인 시스템 명시적으로 초기화할 때까지 완료된 로컬 평가를 잠그세요

완료된 로컬 평가를 명시적으로 초기화할 때까지 잠그세요

저장을 누르면 먼저 attempted를 설정한 다음 모든 평점과 의견을 확인하고, 조건을 충족하면 저장 상태를 활성화합니다. 저장 상태에서는 평점과 textarea가 읽기 전용이 되고 저장 버튼이 비활성화됩니다. 성공 알림에는 평가가 로컬에 저장되었으며 아무것도 전송되지 않았다고 표시됩니다.

‘다시 시작’은 하나의 핸들러에서 모든 평점, 메모, 유효성 검사 표시, 저장 상태를 초기화합니다. 저장 후 값을 하나라도 변경하면 확인 메시지가 실제 상태와 달라질 수 있으므로 초기화 동작을 명시적으로 제공합니다. 이 예제는 백엔드, 계정 또는 평가를 받을 대상을 전제하지 않습니다.

지원 사양 읽기

Vuestic UI 디자인 시스템 각 평점 항목에 평가 기준과 값을 포함한 이름을 지정하세요

각 평점 항목에 평가 기준과 값을 포함한 이름을 지정하세요

기본 VaRating 항목은 접근성 트리에서 버튼으로 표시됩니다. aria-item-label에는 평가 기준 이름과 값 및 최댓값을 나타내는 플레이스홀더가 포함되므로 ‘명확성 점수 5점 만점에 4점’과 같은 레이블이 만들어집니다. 이렇게 하면 한 페이지에 평점 3개가 있을 때 별 버튼 15개가 모두 구분되지 않는 문제를 피할 수 있습니다.

textarea에는 자체 표시 레이블이 있고, 진행률 표시줄에는 완료 상태 레이블이 있으며, 저장 알림은 상태 영역으로 제공됩니다. 장식용 평가 기준 표시는 보조 기술에서 숨깁니다. 로컬 검사에서는 ARIA 속성의 존재만 확인하는 데 그치지 않고 레이블이 지정된 실제 평점 버튼을 클릭하고, 유효성 검사를 실행하며, 280px 화면에서 최종 레이아웃을 확인했습니다.

  • 반복되는 각 평점 항목에 평가 기준별 레이블을 지정하세요.
  • 미응답 상태와 읽기 전용 상태가 시각적으로 구분되게 하세요.
  • 기본 컨트롤을 직접 조작한 뒤 숫자 요약을 확인하세요.

지원 사양 읽기

Vuestic UI 디자인 시스템 플러그인, 컴포넌트 CSS, 로컬 아이콘 에셋을 포함하세요

플러그인, 컴포넌트 CSS 및 로컬 아이콘 에셋을 포함하세요

진입점에서는 createVuestic을 등록하고 vuestic-ui/css를 가져온 다음 기존 레이아웃 스타일시트를 불러옵니다. App.vue는 사용하는 모든 컴포넌트를 가져오므로 문서화되지 않은 자동 가져오기 설정에 의존하지 않습니다. 공통 글꼴 재정의는 라이브러리 CSS 다음에 적용됩니다.

패키지 명령에서 @quasar/extras는 로컬 Material Icons 글꼴을 가져오는 용도로만 포함합니다. Quasar을 등록하거나 해당 컴포넌트를 평가표에 섞어 사용하지 않습니다. 위의 완전한 SFC와 스타일시트는 아래 Vite Vue 설정에 그대로 추가할 수 있습니다. 생성된 독립형 미리보기에는 필요한 에셋이 인라인으로 포함되므로 원격 글꼴을 가져오지 않습니다.

지원 사양 읽기

Vuestic UI 디자인 시스템 컴포넌트 예제

완성된 네이티브 평가 워크시트

VaRating, VaTextarea, VaButton, VaChip, VaProgressBar, VaAlert가 하나의 평가 모델로 연결됩니다.

vue
<script setup>
import {ref,computed} from 'vue';
import {VaRating,VaTextarea,VaButton,VaAlert,VaChip,VaProgressBar} from 'vuestic-ui';
const criteria=ref([{name:'Clarity',hint:'Can you tell what the next action will do?',value:0},{name:'Hierarchy',hint:'Does the most important information stand out?',value:0},{name:'Feedback',hint:'Does the page explain what changed?',value:0}]);
const note=ref(''),attempted=ref(false),saved=ref(false);
const rated=computed(()=>criteria.value.filter(x=>x.value>0).length),average=computed(()=>rated.value?(criteria.value.reduce((a,x)=>a+x.value,0)/rated.value).toFixed(1):'—');
const noteError=computed(()=>attempted.value&&note.value.trim().length<20);
function save(){attempted.value=true;if(rated.value===3&&note.value.trim().length>=20)saved.value=true}
function reset(){criteria.value.forEach(x=>x.value=0);note.value='';saved.value=false;attempted.value=false}
</script>
<template><main class="review-shell"><header><p class="eyebrow">DESIGN CRITIQUE · PERSONAL WORKSHEET</p><h1>Turn an impression into useful feedback.</h1><p>Review an interface using three specific questions. Keep one concrete observation alongside the scores.</p></header><div class="review-layout"><section class="review-form"><div class="form-head"><h2>Your assessment</h2><VaChip outline size="small">{{rated}} of 3 rated</VaChip></div><div v-for="(criterion,index) in criteria" :key="criterion.name" class="criterion"><div class="criterion-mark" :class="'mark-'+index" aria-hidden="true"><i></i><b></b></div><div class="criterion-body"><h3>{{criterion.name}}</h3><p>{{criterion.hint}}</p><VaRating v-model="criterion.value" :max="5" clearable color="primary" :readonly="saved" :aria-label="criterion.name+' rating: '+criterion.value+' of 5'" :aria-item-label="criterion.name+' score {value} of {max}'"/><span class="score">{{criterion.value?criterion.value+' / 5':'Not rated'}}</span></div></div><p v-if="attempted&&rated<3" class="error" role="alert">Rate all three criteria before saving.</p><VaTextarea v-model="note" label="One concrete observation" placeholder="For example: the Save button gives no confirmation after the form closes." autosize :min-rows="4" :max-rows="12" :max-length="400" counter :error="noteError" :error-messages="noteError?['Write at least 20 meaningful characters.']:[]" :readonly="saved"/><div class="actions"><VaButton @click="save" :disabled="saved">Save assessment</VaButton><VaButton preset="secondary" @click="reset">Start again</VaButton></div></section><aside><div class="summary"><p class="eyebrow">ASSESSMENT SNAPSHOT</p><div class="average">{{average}}<span>/ 5</span></div><p class="average-label">Average of rated criteria</p><VaProgressBar :model-value="rated/3*100" color="primary" aria-label="Criteria completion"/><p class="completion">{{rated}} of 3 criteria completed</p><p class="guidance">A score starts a conversation. Your example explains what should change and why.</p><dl><div v-for="criterion in criteria" :key="criterion.name"><dt>{{criterion.name}}</dt><dd>{{criterion.value||'—'}}</dd></div></dl></div><VaAlert v-if="saved" color="success" outline class="saved" role="status"><strong>Assessment saved locally.</strong><p>All three criteria and your observation are captured in this preview. Nothing was sent.</p></VaAlert><p v-else class="local-note">This worksheet stores only local page state. It does not submit a review to another person.</p></aside></div></main></template>

코드 참조

  • 0은 평가되지 않은 상태이며 평균 계산에서 제외됩니다.
  • 저장하려면 세 항목 모두 평가하고 메모를 공백 제외 20자 이상 입력해야 합니다.
  • 저장된 평가와 텍스트는 다시 시작할 때까지 읽기 전용입니다.

원본 레이아웃과 타이포그래피 설정 전체

명시적인 글꼴 재정의, 반응형 카드, 장식용 평가 항목 표시.

CSS
:root{--va-font-family:system-ui,sans-serif}html,body,#app{height:auto;min-height:0;margin:0}*{box-sizing:border-box}body{background:#f3f5f8;color:#262824;font-family:system-ui,sans-serif}.review-shell{max-width:1100px;margin:auto;padding:32px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.13em;color:#667182}h1{font-size:34px;line-height:1.15;margin:12px 0;max-width:710px}header>p:last-child{max-width:640px;line-height:1.6;font-size:15px;color:#677080}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;margin-top:28px}.review-form,.summary{background:white;border:1px solid #dee5f2;border-radius:14px;padding:24px;min-width:0}.form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.form-head h2{font-size:20px;font-weight:650}.criterion{display:flex;gap:18px;padding:24px 0;border-bottom:1px solid #e6eaf0}.criterion:last-of-type{margin-bottom:24px}.criterion-body{min-width:0;flex:1}.criterion h3{font-size:16px;font-weight:650;margin:0 0 6px}.criterion p{font-size:13px;line-height:1.5;color:#677080;margin:0 0 12px}.criterion-mark{width:58px;height:58px;border-radius:12px;flex-shrink:0;position:relative;overflow:hidden;background:#e8efff}.criterion-mark i,.criterion-mark b{position:absolute;display:block}.mark-0 i{width:27px;height:27px;background:#7a9cdf;border-radius:50%;left:10px;top:14px}.mark-0 b{width:14px;height:14px;background:#154ec1;border-radius:50%;left:31px;top:22px}.mark-1{background:#eee8f8}.mark-1 i{width:15px;height:34px;background:#9273b6;left:10px;top:13px}.mark-1 b{width:15px;height:19px;background:#c2aedb;left:32px;top:28px}.mark-2{background:#e6f0e0}.mark-2 i{width:36px;height:23px;border-radius:6px;background:#86a16f;left:11px;top:14px}.mark-2 b{border:8px solid transparent;border-top-color:#86a16f;left:17px;top:33px}.score{display:block;font-size:11px;color:#667182;margin-top:7px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.average{font-size:64px;line-height:1.2;font-weight:650;margin-top:16px;color:#154ec1}.average span{font-size:19px;color:#78828f;font-weight:400;margin-left:8px}.average-label{font-size:12px;color:#697482;margin:5px 0 24px}.completion{font-size:11px;color:#687387;margin-top:10px}.guidance{font-size:14px;line-height:1.6;margin:24px 0}.summary dl>div{display:flex;justify-content:space-between;border-top:1px solid #e6eaf0;padding:12px 0;font-size:13px}.summary dd{font-weight:700}.saved{margin-top:16px;font-size:13px;line-height:1.6}.saved p{margin-top:7px}.local-note{font-size:12px;line-height:1.6;color:#687387;padding:16px 5px}.error{font-size:13px;color:#b71717;margin-bottom:16px}@media(max-width:760px){.review-shell{padding:20px}.review-layout{grid-template-columns:minmax(0,1fr)}h1{font-size:29px}}@media(max-width:360px){.review-shell{padding:14px}.review-form,.summary{padding:16px}.criterion{gap:12px}.criterion-mark{width:38px;height:48px}.criterion-mark i,.criterion-mark b{transform:scale(.7);transform-origin:left}.criterion-mark i{left:4px}.criterion-mark b{left:18px}.actions>*{width:100%}.va-textarea{max-width:100%}}

코드 참조

  • Material Icons는 자체 글꼴 패밀리를 유지합니다.
  • 문서 높이의 최솟값은 설정하지 않습니다.
04

Vuestic UI 디자인 시스템 에이전트 설정

구현 시작점

Vuestic UI 1.10.3과 @quasar/extras 2.1.0의 로컬 Material Icons를 확인했습니다. 전체 소스 예제 두 가지를 모두 제공하므로 외부 글꼴 서비스가 필요하지 않습니다.

자바스크립트
// npm create vite@latest vuestic-review -- --template vue
// cd vuestic-review && npm install
// npm install [email protected] @quasar/[email protected]
// Save the complete examples as src/App.vue and src/style.css.
// src/main.js:
import {createApp} from 'vue';
import {createVuestic} from 'vuestic-ui';
import 'vuestic-ui/css';
import '@quasar/extras/material-icons/material-icons.css';
import './style.css';
import App from './App.vue';
createApp(App).use(createVuestic()).mount('#app');
// index.html: <div id="app"></div><script type="module" src="/src/main.js"></script>
// npm run dev

프로젝트를 위한 프롬프트

에이전트 프롬프트
Vuestic UI 1.10.3을 사용해 네이티브 VaRating 평가 항목 세 개, VaTextarea, 진행률, 상태, 저장 및 초기화 컨트롤을 갖춘 디자인 평가 워크시트를 재현합니다. 평가한 항목을 기준으로 평균을 계산하고, 저장 전 세 항목 모두 점수를 매기고 공백을 제외한 메모를 20자 이상 입력하도록 합니다. 자동 크기 조정 텍스트 영역을 유지해 평가 내용 전체가 표시되도록 하고, 저장 후 읽기 전용 상태와 초기화 동작도 일관되게 구현합니다. createVuestic, 네이티브 CSS, 로컬 아이콘 글꼴을 포함합니다. 이 기능은 로컬 평가 기록이며 검사 배치 서비스가 아닙니다.
05

Vuestic UI 디자인 시스템의 출처와 범위

기본 라이트 색상 프리셋과 명시적인 시스템 글꼴 재정의를 사용하는 Vuestic UI 1.10.3. 원본 평가 질문 및 아트워크. 저장 상태는 로컬에만 적용되며, 외부 평가 제출 기능이나 새로고침 후에도 유지되는 기능은 없습니다.