아이콘 및 SVG 일러스트레이션
GitLab v19.1We manage our own icon and illustration library in the gitlab-svgs package. 저희는 자체 아이콘 및 일러스트레이션 라이브러리를 gitlab-svgs 패키지로 관리합니다.
We manage our own icon and illustration library in the gitlab-svgs
package. This package is published on npm,
and is managed as a dependency with yarn. You can browse all available
icons and illustrations. To upgrade
to a new version run yarn upgrade @gitlab/svgs.
저희는 자체 아이콘 및 일러스트레이션 라이브러리를 gitlab-svgs 패키지로 관리합니다.
이 패키지는 npm에 게시되어 있으며, yarn을 통한 의존성으로 관리됩니다.
사용 가능한 모든 아이콘 및 일러스트레이션을 확인할 수 있습니다.
새 버전으로 업그레이드하려면 yarn upgrade @gitlab/svgs를 실행하세요.
아이콘#
GitLab에서는 SVG 스프라이트를 사용하여 SVG 아이콘을 표시합니다.
아이콘은 한 번만 로드되며, ID를 통해 참조됩니다.
스프라이트 SVG 파일은 /assets/icons.svg 경로에 위치합니다.
HAML/Rails에서의 사용법#
HAML 또는 Rails에서 스프라이트 아이콘을 사용하려면 전용 헬퍼 함수를 사용하세요:
sprite_icon(icon_name, size: nil, css_class: '')
-
icon_name: GitLab SVGs 목록에서 SVG 스프라이트에 사용할icon_name을 입력합니다. -
size(선택): 다음 크기 중 하나를 사용하세요: 16, 24, 32, 48, 72 (이 값은s16과 같은 CSS 클래스로 변환됩니다). -
css_class(선택): 추가 CSS 클래스를 지정할 때 사용합니다.
예시
= sprite_icon('issues', size: 72, css_class: 'icon-danger')
위 예시의 출력 결과
<svg class="s72 icon-danger">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/icons.svg#issues"></use>
</svg>
Vue에서의 사용법#
컴포넌트 라이브러리인 GitLab UI는 스프라이트 아이콘을 표시하는 컴포넌트를 제공합니다.
사용 예시:
<script>
import { GlIcon } from "@gitlab/ui";
export default {
components: {
GlIcon,
},
};
<script>
<template>
<gl-icon
name="issues"
:size="24"
class="class-name"
/>
</template>
-
name: GitLab SVG Previewer에 나열된 SVG 스프라이트 아이콘의 이름입니다.
-
size (선택): 크기를 나타내는 숫자 값으로, 특정 CSS 클래스에 매핑됩니다 (사용 가능한 크기: 8, 12, 16, 18, 24, 32, 48, 72는
sXXCSS 클래스에 매핑됩니다). -
class (선택): SVG 태그에 추가할 CSS 클래스입니다.
HTML/JS에서의 사용법#
JS 내에서 아이콘을 렌더링하려면 다음 함수를 사용하세요:
gl.utils.spriteIcon(iconName)
로딩 아이콘#
HAML/Rails에서의 사용법#
HAML 또는 Rails에서 로딩 스피너를 삽입하려면 gl_loading_icon 헬퍼를 사용하세요:
= gl_loading_icon
gl_loading_icon 헬퍼와 함께 다음 속성 중 하나 이상을 포함할 수 있습니다. 각 예시를 통해 확인하세요:
-
inline(선택):true이면 인라인 요소를 사용하고, 그렇지 않으면 블록 요소(기본값)를 사용하며 스피너가 가운데 정렬됩니다. -
color(선택):dark(기본값) 또는light중 하나를 선택합니다. -
size(선택):sm(기본값),md,lg,xl중 하나를 선택합니다. -
css_class(선택): 기본값은 없으며, 정렬이나 간격을 조정하는 유틸리티 클래스를 사용할 수 있습니다.
예시 1:
다음 HAML 표현식은 로딩 아이콘의 마크업을 생성하고 아이콘을 가운데 정렬합니다.
= gl_loading_icon
예시 2:
다음 HAML 표현식은 사용자 정의 크기의 인라인 로딩 아이콘 마크업을 생성하며, 여백 유틸리티 클래스를 추가합니다.
= gl_loading_icon(inline: true, size: 'lg', css_class: 'gl-mr-2')
Vue에서의 사용법#
GitLab UI 컴포넌트 라이브러리는 GlLoadingIcon 컴포넌트를 제공합니다.
사용법에 대한 자세한 내용은 스피너 문서를 참조하세요.
예시:
다음 코드 스니펫은 Vue 컴포넌트에서 GlLoadingIcon을 사용하는 방법을 보여줍니다.
<script>
import { GlLoadingIcon } from "@gitlab/ui";
export default {
components: {
GlLoadingIcon,
},
};
<script>
<template>
<gl-loading-icon inline />
</template>
SVG 일러스트레이션#
이제부터 SVG 기반 일러스트레이션은 image_tag 또는 image_path 헬퍼를 사용하여 img 태그로 표시합니다.
주위에 svg-content 클래스를 사용하면 올바른 렌더링을 보장합니다.
HAML/Rails에서의 사용법#
예시
.svg-content
= image_tag 'illustrations/merge_requests.svg'
Vue에서의 사용법#
Rails에서 SVG 경로를 전달하는 방식은 권장하지 않습니다.
Rails => Haml => Vue를 거치는 방식 대신, SVG 일러스트레이션을 Vue에서 직접 가져올 수 있습니다.
템플릿에서 SVG 일러스트레이션을 사용하려면 @gitlab/svgs에서 SVG를 가져오세요.
사용 가능한 SVG 경로는 GitLab SVG Previewer를 통해 확인할 수 있습니다.
아래는 SVG 일러스트레이션을 가져와 GlEmptyState 컴포넌트와 함께 사용하는 예시입니다.
컴포넌트:
<script>
import { GlEmptyState } from '@gitlab/ui';
// The ?url query string ensures the SVG is imported as a URL instead of an inline SVG
// This is useful for bundle size and optimized loading
import mergeTrainsSvgPath from '@gitlab/svgs/dist/illustrations/train-sm.svg?url';
export default {
components: {
GlEmptyState
},
mergeTrainsSvgPath,
};
<script>
<template>
<gl-empty-state
title="This state is empty"
description="Empty state description"
:svg-path="$options.mergeTrainsSvgPath"
/>
</template>
SVG 최소화#
새로운 SVG 일러스트레이션을 개발하거나 내보낼 때, SVGOMG와 같은 SVGO 기반 도구로 최소화하여 파일 크기를 줄이세요. GitLab SVG에 추가된 일러스트레이션은 자동으로 최소화되므로 별도 작업이 필요하지 않습니다.